gpt4 book ai didi

javascript - 为什么会这样? (JavaScript 的反向方法)

转载 作者:可可西里 更新时间:2023-11-01 01:47:22 25 4
gpt4 key购买 nike

repl.it:https://repl.it/BuXR/3

var str = "abc";
var str2 = str.split(" ").join("").split("");
var tmp = str2;
console.log(str2);
// => ['a','b','c']
console.log(tmp.reverse());
// => ['c','b','a']
console.log(str2);
// => ['c','b','a']

我的问题是为什么 str2 被改变了,即使它没有被逆转?

这让我很沮丧,但我猜想为什么会这样。 tmp 只是指向原始 str2 的指针,当我在 tmp 上调用 reverse() 时,它实际上反转了 str2。

即使这真的是正在发生的事情,我仍然觉得这是一种非常违反直觉的语言工作方式。

最佳答案

你猜对了。

tmp 只是指向原始 str2 的指针,因此无论对 str2 执行什么操作,它都会存储到内存中,当您访问 tmp 时,它会找到对 str2 的引用。

I have a guess as to why this is happening. The tmp is just a pointer to the original str2, and when I call reverse() on tmp, it actually reverses str2.

关于javascript - 为什么会这样? (JavaScript 的反向方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35883311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com