表白:黑白圣堂血天使,天剑鬼刀阿修罗。';
讲解对象:/为什么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]注册一个账号登录,里面真的有很多优秀的文章,欢迎大家的到来。
---
联系客服