摘要:
js加载的缺点:加载工具方法没必要阻塞文档,个别js加载会影响页面效率,一旦网速不好,那么整个网站将等待js加载而不进行后续渲染等工作。 有些工具方法需要按需加载,用到再加载,不用不加载。 一、defer与async 1.defer是IE独有的一种js异步加载模式,通过src加载的JS会等到文档解析 阅读全文
摘要:
浅层克隆 深层克隆 扩展方法 一、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是一个一元运算符,放在任意类型的运算数前,这个运算返回的是字符串,该字符串说明的是运算数的类型。 在原始值类型 阅读全文
摘要:
each() children() index() 一、jQuery实例遍历方法each() jQuery实例上的each()方法规定要运行的函数,并且给函数传入两个参数:index,element。这个方法本身应用非常的简单,所以要来点不简单的东西,请看以下代码: 思路一的解决方案循环了两次,从上 阅读全文
摘要:
offset() position() scrollTop()、scrollLeft width()、height() innerWidth()、outerWidth()、innerHeight()、outerWidth() jQuery坐标图形大小相关 offset() 返回或设置元素距离浏览器的 阅读全文
摘要:
这篇博客主要从BOM的基本结构,其本身及其子对象与DOM之间的关系来阐述,旨在通过分析BOM为后期向浏览器结构和浏览器内核剖析做好准备,因为这部分内容在我们日常的开发和学习中都不太会全面的分析,都是基于实际需要分片融合其他知识点来理解,个人认为作为一个有进阶前端开发攻城狮梦想的猿人,有必要对BOM或者是说浏览器结构有完整的视角,毕竟前端的第一座高山个人认为就是浏览器内核,从browser object model(BOM:浏览器对象模型)来开启浏览器核心之旅个人认为是一个不错的思路,毕竟在日常我们都太着重DOM,刚开始学习前端的时候以为DOM就是浏览器的核心,后来才发现DOM才只是浏览器内核很少的部分(js引擎才是内核的重中之重,但也只是一个部分),只是它在我们的日常开发中占有非常大的地位而已(特别是jQuery)。总而言之,这篇博客就是从BOM的角度重新来认识浏览器。(基础引导文,大佬请绕路) 阅读全文
摘要:
JavaScript中的this指向规则 源码来袭:call、apply手写实现与应用 理解建议:如果对this指向规则不了解的话,建议先了解this指向规则,最好还能对call和apply的使用和内部原理也有所了解,不然直接研究bind还是会有些难度的。 一、bind()的使用 在单对象编程中,有 阅读全文
摘要:
关于this指向可以了解我的另一篇博客:JavaScript中的this指向规则。 一、call与apply的使用 回顾call与apply的this指向: 回顾call与apply的参数使用: 二、call与apply的手写实现 思路: call手写实现: apply手写实现: 阅读全文
摘要:
浏览器UI多线程及JavaScript单线程运行机制,是web前端的非常重要一个基础扩展知识,它是浏览器内核工作原理中最重要的一个部分,也是步入web前端工程师最基本的知识素养。 阅读全文
摘要:
开篇一张图之队列模型 queue()如何使用? queue()原理实现? 基于queue()模拟实现animate() 一、使用queuer方法、理解队列原理 queue() dequeue() clearQueue() 1.创建队列$(selector).queue(queueName,funct 阅读全文
摘要:
原生JavaScript运动功能系列(一):运动功能剖析与匀速运动实现 原生JavaScript运动功能系列(二):缓冲运动 原生JavaScript运动功能系列(三):多物体多值运动 原生JavaScript运动功能系列(四):多物体多值链式运动 这篇博客剖析一个问题,就是怎么实现将元素指定时间运 阅读全文
摘要:
原生JavaScript运动功能系列(一):运动功能剖析与匀速运动实现 原生JavaScript运动功能系列(二):缓冲运动 原生JavaScript运动功能系列(三):多物体多值运动 多物体多值链式运动 这篇博客的内容本来是安排在上一篇博客的内容里面的,但是后来考虑篇幅的问题,就单独拿出来了,所以 阅读全文