为什么最后一行 a的值是10 而c的值是200
因为a是fn函数的参数,是一个局部变量,局部变量的值改变并不会影响全局变量的。
把fn(10)改成fn(20) 最后的结果还是10 没错, 因为a的值只是在fn()内发生了改变,并没有引起外部的改变。
fn()内加返回:return a; 这时在外部 a= fn(temp)则 外部a值发生变化
var a = 10;
var b = 20;
var c = 30;
function fn(temp){
console.log("1:"+a,b,c);
a = 100;
c = 200;
console.log("2:"+a,b,c);
return a;
}
b = fn(10);
console.log("3:"+a,b,c);
//1:10 20 30
//2:100 20 200
//3:100 100 200
var a = 10
b = 20
c = 30
function fn(temp){
console.log("1:"+a,b,c);
a = 100;
c = 200;
console.log("2:"+a,b,c);
}
b = fn(10);
console.log("3:"+a,b,c);
//1:10 20 30
//2:100 20 200
//3:100 undefined 200
var a = 10
b = 20
c = 30
function fn(temp){
console.log("1:"+a,b,c);
a = 100;
c = 200;
console.log("2:"+a,b,c);
return a;
}
b = fn(10);
console.log("3:"+a,b,c);
//1:10 20 30
//2:100 20 200
//3:100 100 200
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632