javascript - 将字符串传递给函数是按值复制还是按引用传递?

标签 javascript

由于 JavaScript 中的字符串是基本类型,将字符串传递给函数是否会创建它的本地副本?我想知道这一点,因为在创建字符串后您无法对其进行修改,因此 JavaScript VM 不只是将字符串的地址传递给内部函数似乎是不合逻辑的。

如果有人要告诉我我不应该担心这个(在与网络开发人员交谈时经常发生这种情况),我正在开发 HTML5 游戏,垃圾收集是一个主要问题,所以我真的需要知道。

最佳答案

字符串将通过引用传递。

字符串是不可变的,所以每当您尝试更改它时,您都会得到一个新字符串(例如,通过执行 value+="more")。

另见:What does immutable mean?

@T.J. Crowder:按值(value)与按引用 - 如果您正在查看语言定义,那么您是正确的。但是我不认为有一个实际创建字符串副本的实现,因为它会非常慢。此外,由于字符串是不可变的基元,因此无需复制它们,因为它们无法更改。

关于javascript - 将字符串传递给函数是按值复制还是按引用传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15664372/

相关文章:

javascript - 如何在 Lotus 脚本上使用正则表达式?

javascript - 有没有一个工具可以检查html中脚本的加载顺序

javascript - 检查数组是否包含重复值

javascript - slider 在启动时向复杂的 Shiny 应用程序提供空值,并在输入变化时定期提供空值

javascript - 需要 for/while/do while 循环来重复星号

javascript - 使用 Handlebars.js 渲染本地模板

javascript - 设置 Parallax.js 时遇到问题

javascript - 循环遍历包含 bool 值的对象

javascript - Discord.js GuildMember.hasPermission?

javascript - vue js嵌套数组加载到表