gpt4 book ai didi

Javascript Funky 数组灾难

转载 作者:行者123 更新时间:2023-12-03 03:14:17 25 4
gpt4 key购买 nike

function a() {
var b = ["b"];
console.log(b);
//console.log(b.slice());
b = b.push("bb");
}
a();

在“完美”的世界中,您会认为 console.log 会显示 ["b"],但实际上它显示 ["b"", "bb"] 即使“bb”直到之后才被推送。

如果你这样做 console.log(b.slice()); 那么你将得到 ["b"] 所需的结果。这是为什么?这种并发症背后的原因是什么?我只是想更好地理解这一点,以便更好地避免它发生。

* 注意,我在最近的一个问题中也提到了同样的观点,但这是一个更简洁的示例。 @RightSaidFred 让我走到了这一步,并且迄今为止提供了巨大的帮助。

编辑

Runnable example on JSFiddle

最佳答案

这是一个known problemconsole.log

调用该方法时,不会将参数转换为字符串,而是会存储参数,并在 UI 中显示参数时将其转换为字符串。由于函数运行时 UI 中没有任何反应,因此当您退出函数时,您将看到对象的状态。

关于Javascript Funky 数组灾难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8395718/

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