打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
为什么js中swap(a, b)交换变量值会失败呢?
表白:黑白圣堂血天使,天剑鬼刀阿修罗。 
讲解对象:
/为什么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]注册一个账号登录,里面真的有很多优秀的文章,欢迎大家的到来。
---
';
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
实参和形参指针做函数参数时,如何改变main函数变量的值
C|从形参与实参的内存地址区别值传递与址传递
C语言学习——指针精华(3)工程项目复习
c++形参实参
C/C++ 中的函数参数传递机制
你的变量究竟存储在什么地方?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服