自己没事看题的时候有一些易错的点 ,粘贴一下,大家共享
1.typeof null -- object
2.
for(var i = 0;i<2;i++){
setTimeout(function(){console.log(i)},0) ....①
}
for(var i = 0;i<2;i++){
(function(i){
setTimeout(function(){console.log(i);},0) ...②
}(i))
}
第一个最终输出 2 2
第二个最终输出 0 1
解析:对于①式,虽然定时器的延迟执行时间为0秒,但是不影响定时器为异步任务,即定时器的执行在循环结束后,当i = 2时,循环结束,此时再执行定时器的异步任务,输出结果为2 2;对于②式,立即执行函数会形成独立的作用域,用来临时封装变量i,i从0到1,对应两个立即执行函数,同时,立即执行函数将i值传递给定时器。
3.
console.log(typeof
''.prototype);
console.log(typeof
''.__proto__);
console.log(typeof
''
.__proto__ ===
typeof
''.prototype);
undefined object false
解析:每个实例对象(object)都有一个私有属性(称之为 __proto__ )指向它的构造函数的原型对象(prototype),所以prototype是构造函数用来获取原型对象的属性,__proto__。所以字是实例用来获取原型对象的属性符串的prototype属性是undefined,__proto__属性指向String原型对象。