请给出这段代码的运行结果
var a = 1;
function fn(a) {
a = 2;
alert(a);
};
fn(a);
alert(a);
function fn(a) {
a = 2;
alert(a);
};
fn(a);
alert(a);
var a = 1;如果fn是下边这样没有这个形参a,执行的时候在当前函数作用域找不到a的话才会去外层找到全局作用域的a从而修改全局变量a,而这样的输出结果会是2,2,绝不是2,1function fn(a) { a = 2; // 这个a = 2修改的是形参a,并不是全局的a alert(a); }fn(a); alert(a);
function fn() { a = 2; // 这个a = 2才是修改了全局变量a alert(a); }