10,000 hours to master something,not to learn something
HTML:script标签中defer和async的区别是什么?
CSS:css行高line-height的一些深入理解及应用
JavaScript:能不能手动实现一下instanceof的功能?
HTML:script标签中defer和async的区别是什么?
默认情况下,脚本的下载和执行将会按照文档的先后顺序同步进行。当脚本下载和执行的时候,文档解析就会被阻塞,在脚本下载和执行完成之后文档才能往下继续进行解析。
下面是async和defer两者区别:
- 当script中有defer属性时,脚本的加载过程和文档加载是异步发生的,等到文档解析完(DOMContentLoaded事件发生)脚本才开始执行。
- 当script有async属性时,脚本的加载过程和文档加载也是异步发生的。但脚本下载完成后会停止HTML解析,执行脚本,脚本解析完继续HTML解析。
- 当script同时有async和defer属性时,执行效果和async一致。
CSS:css行高line-height的一些深入理解及应用
CSS:css行高line-height的一些深入理解及应用
JavaScript:能不能手动实现一下instanceof的功能?
function myInstanceof(left, right) {
// 基本数据类型直接返回false
if(typeof left !== 'object' || left === null) return false;
// getProtypeOf是Object对象自带的一个方法,能够拿到参数的原型对象
// 可以换成let proto = left.__proto__,下面同理
let proto = Object.getPrototypeOf(left);
while(true) {
// 查找到尽头,还没找到
if(proto == null) return false;
// 找到相同的原型对象
if(proto == right.prototype) return true;
proto = Object.getPrototypeof(proto);
}
}
console.log(myInstanceof(new String("111"), String));//true