前端让前端飞

变量提升 & this指向

2018-02-11  本文已影响7人  Mr哲

变量提升

JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。
JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。

定义:变量提升

需要注意的几点

var a = 5
console.log(a+b)
var b = 1

会报错,因为只有变量定义被提升,而赋值操作并不会,错误信息为b为定义

由于最近模块化开发,统一一下变量头部定义比较好,而且方法尽量小便于测试

this 指向

  1. 这个是个难点,之前的经验是看函数调用,在没有call,apply,bind的情况下,就看调用时的环境就好了,定时器和块作用域全局调用,属于全剧函数,也指向window

ps:超时调用的代码都是在全局作用域中执行的,因此函数中this的值在非严格模式下指向window对象,在严格模式下是undefined。 ——《JavaScript高级程序设计》

  1. bind(),call(),apple()的区别:

3.箭头函数重的this:箭头函数内部的this是词法作用域,由定义环境决定,箭头函数中this总是指向外层调用者。

上一篇 下一篇

猜你喜欢

热点阅读