function fun(a,b){
var temp;
temp=a;
a=b;
b=temp;
}
var x=0,y=5;
fun(x,y);
console.log(x);//0
function fun(a,b){
var temp;
temp=a;
a=b;
b=temp;
}
var x=0,y=5;
fun(x,y);
console.log(x);//0
都不是,是参数没传出来。
你要知道:Javascript 的参数传递采用的是值传递机制,即传递参数时会将值拷贝,而不是传入变量本身。因此你在函数内对参数做出的修改不会扩散到外面来。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
问题其他答案已经说的很清楚了,函数的参数是值传递,函数中的
a
和b
只是函数内部参数,和外部的x
和y
无关,不会影响外部变量的值。要交换两个变量的值,利用 ES6 的解构赋值,只需要一行: