表白:黑白圣堂血天使,天剑鬼刀阿修罗。 讲解对象:/为什么js中swap(a, b)交换变量值会失败呢? 作者:融水公子 rsgz ===
第一次编辑的这个函数并没有交换变量成功 原因在哪里 分析一下
function swap(a, b) {
const temp = a;
a = b;
b = temp;
return a,b // 或者 return (a,b)
}
console.log(swap(2, 3)) 这个函数不能成功交换变量的值是因为 JavaScript 中的参数传递方式是按值传递(pass by value),而不是按引传递(pass by reference)。
在函数中,你将变量 a 和 b 作为参数传递给 swap 函数时,实际上是将它们的值复制到了函数的局变量 a 和 b 中。在函数内部对 a 和 b 的修改不会影响到原始变量。 所以尽管在函数内部进行了交换操作,是函数返回后,原始的变量 a 和 b 的值并没有生改变 那么而我们改进一下就可以了function swap(a, b) {
const temp = a;
a = b;
b = temp;
return [a, b];
}
console.log(swap(2, 3)); // 输出 [3, 2] === 公众号:不浪仙人 谢谢大家的支持!可以点击我的头像,进入我的空间浏览更多文章呢。建议大家360doc[www.360doc.com]注册一个账号登录,里面真的有很多优秀的文章,欢迎大家的到来。 --- ';
|