js的变量提升问题
执行结果: 为什么第一个不输出全局变量呢? 我们先了解下变量提升,指的是变量声明总是会被解释器“提升”到函数体的顶部,这意味着,我们的var scope="局部”,但解释器会提升该scope变量——将该变量的声明提升到函数体的顶部。 注意:变量提升只是提升变量声明部分,并不会提升变量赋值部分。 上面的代码可以转换为: function test(){ var scope ; document.writeln(scope+"<br/>"); scope = "局部"; document.writeln(scope+"<hr/>"); } 这样的话就在test()函数里面,先声明了scope变量,但是第一次打印时还没有赋值,故为undefined 来源: CSDN 作者: victor_yjx 链接: https://blog.csdn.net/victor_yjx/article/details/104417210