据我了解,变量提升是在 Java 脚本中完成的。我无法理解为什么它输出为未定义
do_something()
{
var foo = 2;
console.log(foo);
} do_something() // it prints 2
do_something()
{
console.log(foo); var foo = 2;
} do_something() // it prints undefined
当 javascript 提升第二个函数时,根据我的理解,第二个函数也应该打印 2。购买为什么不呢
这就是解释器如何看待你的代码,
do_something() {
var foo;
console.log(foo); // undefined
foo = 2;
}
do_something();
所以正在打印undefined
。这是变量提升的基础。您的声明将移至顶部,而您的分配将保留在同一位置。当你使用时情况有所不同let
over var
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)