以下代码执行后,分别弹出来的值是:

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'。

JavaScript 函数作用域与变量提升示例:testf1 和 testf2 的输出值

原文地址: http://www.cveoy.top/t/topic/ozrI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录