因为方法自动提升,因此开始执行fun函数的内容:
function fun(){ var a=3; alert(a); var a=4; } // var a=3; alert(a); var a=4;
因为在alert之前定义了var a =3;因此在alert的时候,就会弹出a的值,也就是3。
在这个函数 `fun` 中,您声明了一个变量 `a` 并进行了多次赋值。在 JavaScript 中,变量声明会被提升到函数或代码块的顶部,所以变量 `a` 在函数内的所有位置都是可见的。这就是为什么您可以在变量声明后的任何位置访问变量 `a`。
在您的代码中,变量 `a` 被重复声明,但由于 JavaScript 中的变量提升,只有一个 `a` 被创建,而后续的声明将会覆盖前面的值。因此,`alert(a)` 将会显示最后一次赋给 `a` 的值,即 4。
所以,当调用 `fun()` 时,`alert(a)` 将显示 `4`。
var a=3; alert(a);
当然是3