Skip to content

说说下面代码的执行过程

js

var a=3; function c(){ alert(a); } (function(){ var a=4; c(); })();


## 参考答案:

这段代码的执行过程如下:

1. 定义变量 a 并赋值为 3。
2. 定义一个函数 c,该函数弹出一个对话框显示变量 a 的值。
3. 定义一个立即执行函数,并在其中定义变量 a 并赋值为 4。
4. 在立即执行函数中调用函数 c。
5. 函数 c 弹出一个对话框显示变量 a 的值,此时输出结果为 3。

原因是在立即执行函数中定义的变量 a 只在该函数作用域内有效,并没有改变全局作用域中的变量 a 的值,而函数 c 中使用的变量 a 是从全局作用域中查找的,因此输出的是全局作用域中的变量 a 的值。