gpt4 book ai didi

javascript - 为什么 1+[ ] 在 JavaScript 中返回 "1"?

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

最近我的一个 friend 问了我一个问题:

![]+1+[]+false

评估后我凭直觉回答了2。但是当我在浏览器控制台中尝试该表达式时,得到的输出是 "1false"

对我来说,奇怪的部分是 1+[] ,其计算结果为 "1"

我不明白为什么会这样以及它是如何工作的?

有人可以解释一下吗?

谢谢

最佳答案

添加一个数字和一个对象,尝试将对象转换为基元。为此,它会在对象(本例中为空数组)上调用 .toString(),对于调用 .join() 的数组,以及 [ ].join()"",因此 1 + []"1" 相同。

另请记住,添加是从左到右的。

 (![]) + 1 + [] + false // objects are truthy, therefore *not object* is false
(false + 1) + [] + false // boolean gets coerced to number, and false is 0
(0 + 1) + [] + false // 0 + 1 is 1
(1 + []) + false // .valueOf() as described above
(1 + "") + false
"1" + false
"1false"

关于javascript - 为什么 1+[ ] 在 JavaScript 中返回 "1"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57476570/

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