31
2020
07

请解释变量声明提升。

在JS里定义的变量,存在于作用域链里,而在函数执行时会先把变量的声明进行提升,仅仅是把声明进行了提升,而其值的定义还在原来位置。示例如下:




1 var test = function() {

2     console.log(name); // 输出:undefined

3     var name = "jeri";

4     console.log(name); // 输出:jeri

5 }

7 test();



上述代码与下述代码等价。




1 var test = function() {

2     var name;

3     console.log(name); // 输出:undefined

4     name = "jeri";

5     console.log(name); // 输出:jeri

6 }

8 test();



由以上代码可知,在函数执行时,把变量的声明提升到了函数顶部,而其值定义依然在原来位置。

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。