关于JS函数变量作用域
这样一段代码:
var a = 123 function f() { console.log(a); var a = 1; console.log(a); }
执行f(),会怎样输出呢?
你可能会想当然的第一次console.log输出的是123,也就是全局变量的值,而第二次显示是1。
但是,最先输出的是undefined。
函数的作用域始终优先于全局作用域,所以局部变量a会覆盖掉与他同名的全局变量,尽管第一次console.log的时候,a还没有被正式定义,但该变量已经存在本地空间了。即输出undefined。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。