JavaScript 函数作用域与变量提升示例:testf1 和 testf2 的输出值
以下代码执行后,分别弹出来的值是:
var num1 = 1;
function testf1() {
num1 = 2;
var num1;
alert(num1);
}
function testf2() {
alert(num1);
}
testf1();
testf2();
弹出来的值分别是'2' 和 '2'。
在 testf1 函数中,虽然 num1 被声明为局部变量,但在赋值语句之前,JavaScript 会将其提升到函数作用域的顶部。因此,赋值语句实际上是给局部变量 num1 赋值,而不是全局变量 num1。
在 testf2 函数中,由于没有局部变量 num1 的声明,所以会使用全局变量 num1 的值,即 '2'。
原文地址: http://www.cveoy.top/t/topic/ozrI 著作权归作者所有。请勿转载和采集!