javaScript 变量作用域
javaScript 变量作用域
总是被这个问题困扰,所以组总结一下
变量声明提升(Variable hoisting)
1 | /** |
mozilla参考教程 变量声明提升之后使用这个被提升的引用仍然得到undefined的值 所以你如果需要声明变量的时候,var语句尽可能在函数顶部
在 ECMAScript 2015 中,let(const)将不会提升变量到代码块的顶部。因此,在变量声明之前引用这个变量,将抛出错误ReferenceError
。这个变量将从代码块一开始的时候就处在一个“暂时性死区”,直到这个变量被声明为止。
1 | console.log(x); // ReferenceError |
#函数提升(Function Hoisting)
对于函数,只有函数声明会被提升到顶部,而不包括函数表达式。
1 | /* 函数声明 */ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Easy's Blog!
评论