随笔分类 - javaScript
js相关的所有随笔。
摘要:let声明 const声明 块级作用域 spread/rest 一、let声明与块作用域 在ES6之前,JavaScript中的作用域基本单元就是function。现在有了let就可以创建任意块的声明,也被称为作用域块。这意味者只需要“{}”就可以创建一个作用域。不再像var声明变量那样总归属于包含
阅读全文
摘要:初步了解严格模式 一个用心良苦的语言模式设计 一、初步了解严格模式 ECMAScript 5的严格模式是采用具有限制性JavaScript变体的一种方式,从而使代码显示地“脱离马虎模式/稀松模式/懒散“模式。 为什么这么说呢?有时候忘记在作用域链上是否存在某个变量了,或者忘记在那一层作用域,但是当前
阅读全文
摘要:with的基本使用 尴尬的with关键字 一、with的基本使用 with是用来扩展语句作用域的,什么意思呢?先来看看语法和示例: 语法: expression:将给定的表达式添加到评估语句时使用的作用域上。 statement:任何语句。 示例: 描述: with语句可以形成作用域,并且将传入的对
阅读全文
摘要:初识websocket websocket的应用:构造函数、常量、属性、方法 websocket应用示例 一、初识websocket 1.1Websocket是一种网络协议,是在HTTP基础上做出一些优化的协议,与HTTP无直接关系。WebSocket是HTML5开始提供的一种在单个TCP连接上进行
阅读全文
摘要:fileReader的方法与事件 fileReade实现图片预加载 fileReade实现文件读取进度条 fileReade的与file.s实现文件切片读取 一、fileReader的方法与事件 1.方法 FileReader.abort():终止读取操作。返回时,readyState属性为DONE
阅读全文
摘要:worker概述 worker基本使用 window下的postMessage worker多线程的应用 一、worker概述 web worker实际上是开启js异步执行的一种方式。在html5之前有事件、定时器、http请求三种异步机制,js本身并不能主动将一块代码使用异步的方式执行,worke
阅读全文
摘要:定时器setInterval实现的匀速动画为什么不是匀速? window.requestAnimationFrame() 一、定时器setInterval实现的匀速动画为什么不是匀速? 以上提问并非通过计算时间戳来计算每帧运动,而是直接使用定时器按照既定的间隔时间叠加每次运动距离的方式,这里主要意在
阅读全文
摘要:when方法的语法及使用 when源码实现分析 一、when方法的语法及使用 1.语法: $.when( deferreds ) when本身相当于一个延迟回调对象集合的监听,当监听到所有回调对象都被触发了受理回调,它自身的一个延迟回调对象就会触发受理;反之,当它监听的回调对象中有一个触发了拒绝回调
阅读全文
摘要:deferred的功能及其使用 deferred的实现原理及模拟源码 deferred.then方法的实现原理及模拟源码 一、deferred的功能及其使用 deferred的底层是基于callbacks实现的,建议再熟悉callbacks的内部机制前提下阅读这篇博客,如果需要了解callbacks
阅读全文
摘要:jQuery.ajax()方法的应用 jQuery.ajax()的无忧回调(优雅的代码风格) 一、jQuery.ajax()方法的应用 jQuery.ajax()实质上就是在ajax的基础上进行了封装,将参数设置,方法调用,数据传输,响应的回调函数等都封装到一个对象中,然后使用这个对象作为jQure
阅读全文
摘要:Callbacks的基本功能回调函数缓存与调用 特定需求模式的Callbacks Callbacks的模拟源码 一、Callbacks的基本功能回调函数缓存与调用 Callbacks即回调函数集合,在jQeury中配合异步操作实现异步回调任务,同时也具备函数解耦的基础特性。简单的说就是缓存回调函数的
阅读全文
摘要:JSON语法与对象 JSON方法与使用 一、JSON语法与对象 JSON是英文JavaScript Object Notation(JavaScript 对象表示法)的缩写,是存储和交换文本信息的语法。类似XML,JSON比XML更小更快更简单。 JSON对象采用键值对的结构,所以在JS对象中Obj
阅读全文
摘要:AJAX常用参数 AJAX对象兼容 AJAX对象方法与属性 AJAX封装兼容方法源码 AJAX全称Asynchronous JavaScript and XML(异步的JavaScript与XML),最初的AJAX传输的数据格式采用的是XML,所以这也就是AJAX名称的由来,后来由于技术的发展JSO
阅读全文
摘要:浅层克隆 深层克隆 扩展方法 一、extend的基本使用 语法: 警告: 不支持第一个参数传递 false 。 jQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象。 注意:1. 如果只为$.extend()指定了一个参数,则意味着参数target被省略。此时,target就
阅读全文
摘要:proxy() onConflict() each() map() parseJson() makeArray() proxy() $.proxy()的实现机制与原生javaScript中的bind()方法实现机制一致,都是用来修改函数执行的this指向,我在前面的博客中有bind的源码剖析:源码来
阅读全文
摘要:type()的使用 类型判断方法之is...() 实现原理可以参考我的另一篇js源码剖析博客: 类型和原生函数及类型转换(二:终结js类型判断) $.isArray(),$.isFunction(),$.isWindwo() 这三个方法是jQurey内部代码自己使用的类型判断方法,但是也能拿出来用,
阅读全文
摘要:Number() parseInt() parseFloat() Boolean() String() toString() 一、显式类型转换 Number()函数把对象的值转换为数字。(全局函数) 如果对象的值无法转换为数字,那么 Number() 函数返回 NaN。 语法: Number(obj
阅读全文
摘要:typeof instanceof isArray() Object.prototype.toString.call() DOM对象与DOM集合对象的类型判断 一、typeof typeof是一个一元运算符,放在任意类型的运算数前,这个运算返回的是字符串,该字符串说明的是运算数的类型。 在原始值类型
阅读全文
摘要:JavaScript中的this指向规则 源码来袭:call、apply手写实现与应用 理解建议:如果对this指向规则不了解的话,建议先了解this指向规则,最好还能对call和apply的使用和内部原理也有所了解,不然直接研究bind还是会有些难度的。 一、bind()的使用 在单对象编程中,有
阅读全文
摘要:关于this指向可以了解我的另一篇博客:JavaScript中的this指向规则。 一、call与apply的使用 回顾call与apply的this指向: 回顾call与apply的参数使用: 二、call与apply的手写实现 思路: call手写实现: apply手写实现:
阅读全文