JS题目知识点总结(1)

208 阅读1分钟

1、变量提升

   关于letvarfunction

  • let 的「创建」过程被提升了,但是初始化没有提升。
  • var 的「创建」和「初始化」都被提升了。
  • function 的「创建」「初始化」和「赋值」都被提升了。

2、setTime事件执行机制

如果setTimeout加入队列的阻塞时间大于两个setTimeout执行的间隔时间,那么先加入任务队列的先执行,尽管它里面设置的时间可能比另一个setTimeout的要大

举个栗子:

//Time2 

setTimeout(function(){ console.log(2); },400); 

var start=new Date();

 for (var i = 0;i<5000;i++) 

{ console.log('这里只是模拟一个耗时操作'); }; 

var end=new Date(); 

console.log('阻塞耗时:'+Number(end-start)+'毫秒'); 

//Time1

 setTimeout(function(){ console.log(3) },300);

结果:

这里只是模拟一个耗时操作

阻塞耗时:515毫秒

2

3

(如果阻塞时间大于两个setTimeout执行的间隔时间,则time2先执行)

3、类型

一元加号会尝试将boolean类型转换为数字类型。 true被转换为1false被转换为0

字符串'Lydia'是一个真值。 我们实际上要问的是“这个真值是假的吗?”。 这会返回false

4、静态方法

静态方法仅在创建它们的构造函数中存在,并且不能传递给任何子级。若子集对象向静态函数传值,会输出TypeError。