Js 基础知识点

原创 uptown 随笔 js 110阅读 2019-05-10 01:03:33 举报

1、参数、块级作用域、变量、常量

1)、变量提升

结果:undefined,100

2)、变量和块级作用域,变量和常量

结果:报错 Cannot access 'val' before initialization
*块级作用域和常量不存在变量提升

3.1)、参数和变量

结果:10,100
函数内取全局变量val:console.log(this.val)

3.2)、参数和块级作用域,参数和常量

结果:报错 Identifier 'val' has already been declared
* let、const均不允许在相同作用域内,重复声明同一个变量
当然,在函数外申明 var val = 15; 无影响

2、构造函数、prototype、原型链

1)、constructor 指向

结果:console.log(f1.constructor===F1) //true

这样呢:

结果:console.log(f1.constructor===Object) //true

2)、当构造函数内和prototype同样的值

结果:cat undefined dog
如果构造函数内有prototype上同样的方法,前者将会覆盖后者

3、this 指向

简单来说,this 指向就是:谁调用她,this 就指向谁!
1)、

json.dbl() 调用的时候,将 json.val 修改成 20;
dbl(),window 嗲用dbl 方法,等同于:window.dbl(); this 指向全局变量 val,将 window.val 修改成 2
json.dbl.call(window); 利用call 方法,将json.dbl内的 this 指向 window,将 window.val 修改成 4;
所以最终的结果是:24

2)、箭头函数,this 指向

箭头函数的this是在定义函数时绑定的,不是在执行过程中绑定的。
* 箭头函数中的 this,首先会向上找最近一层的非箭头函数:如果有,则绑定到这个this;如果没有,则指向window。

结果是:10,1,10,1

全部this指向场景,可以看我以前写的文章:《Js this指向》

4、异步

1)、console.log 显示顺序

这里的难点,在promise与setTimeout的执行顺序,因为执行结果是:2,3,4,5,1 也就是说最后执行 setTimeout

未完待续//

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复