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