木灵鱼儿
你不知道的JavaScript
提升
前言到现在为止,我们应该知道作用域是做啥的了,以及词法作用域模式中,根据代码声明的位置和方式分配作用域的相关原理,。函数作用域和块作用域的行为是一样的,可以总结为:任何声明在某个作用域内的变量,都将附属于这个作用域。但是作用域中的变量标识符和其声明的位置却有一些微妙的联系。编译a = 2; var a; console.log(a);这段代码,其实会输出2;至于为什么,我们可以从编译的角度去理解。我们知道,JavaScript在运行之前会进行一次编译,其中就有词法分析,并将词法与对应的作用域进行关联,于是会将声明先提取出去,于是乎上述的var a;会被先取走并丢入作用域中去。当代码编译完...
最近评论