4-13 参数视为局部变量
来源:4-13 JS解析机制详解
RogerLeung
2018-07-19 22:29:59
var a = 1; function fn(a){ console.log(a); a=2; } fn(); console.log(a);
a=2 不是全局变量的声名,可否理解成参数a是作为局部变量先声明了一次了?
跟
var a = 1;
function fn(a){
var a;
console.log(a);
a=2;
}
fn();
console.log(a);
同理?
3回答
好帮手慕糖
2018-07-22
你好,这里是因为你把a作为一个参数了哦,若把定义函数中的参数a去掉,那么就是在函数外定义了全局变量,a,然后在函数中该变量全局变量a的值。
祝学习愉快~
好帮手慕星星
2018-07-20
形参中虽然有a,但是调用fn函数的时候并没有传参啊
好帮手慕星星
2018-07-20
var a = 1; function fn(a){ console.log(a); a=2; } fn(); console.log(a);
在这段代码中,a=1是全局变量,a=2是局部变量,fn函数中给a重新赋值之前打印a,所以是undefined,这时候a只是定义了而已。最后打印的a是全局的a,为1。和下面代码可以理解成一样。祝学习愉快~~
相似问题