var a =1;
function fn(a){
console.log(a);//undefined
a=3;
}
fn();
console.log(a);//1
var a =1;
function fn(a){
a=3;
console.log(a);//3
}
fn();
console.log(a);//1
为什么第一个代码块里面最后一个是1而不是3还有那个undefined是因为实参是0?第二个代码块中a=3上移以后实参就没有用?
求解
我只画了第一题的图解,第二题,你自己画吧~
可以看下:
https://blog.csdn.net/aningde/article/details/104051158
https://mp.weixin.qq.com/s/p4vNzGZC7Sw4j2ijUVGgdg
function fn(a){
console.log(a);//undefined
a=3;
}
fn(a) 里的a是函数内部的a,a=3只影响内部,并不会影响外部的a值;如果函数定义为function fn(b)
,内部执行a=3
,那就会影响外部的a值。