javaScript-变量提升

当局部变量和全局变量同名时,局部变量会覆盖全局变量


javaScript-变量提升

<code>

代码第一次输出的scope值并不是“全局变量”,而是undefined.这是什么原因呢?函数在1处定义scope局部变量,怎么在1处之前也不能访问全局的scope变量呢?

此处需要理解javaScript的变量提升机制。所谓变量提升,指的是变量声明总是会被解释器“提升”到函数体的顶部,这意味着上面程序中1处定义了scope局部变量,但解释器会提升该scope变量,将该变量的声明提升到函数体的顶部。

注意:变量提升只是提升变量声明部分,并不会提升变量赋值部分

因此,上面的test()函数实际上等同于

<code>

javaScript-变量提升


分享到:


相關文章: