gpt4 book ai didi

javascript - 为什么只有 1 个数字项的数组可用于某些算术?

转载 作者:行者123 更新时间:2023-11-30 07:22:01 25 4
gpt4 key购买 nike

我不明白为什么在某些计算中可以使用空数组或只有 1 个“数字”值的数组。

[] * [] === 0 //true

[2] * [2] === 4 //true

["2"] * ["2"] === 4 //true

但是,似乎并非所有运营商都是如此。

[2] + [1] === 3 // false, actual result is "21"

[2] - [1] === 1 // true

我还检查了这些,并看到了预期的结果:

[4] === "4" // false
[4] === 4 // false

在大多数情况下,我希望在任何这些数学运算中出现 NaN。允许这样做的 JavaScript 数组是什么?是因为内部以某种方式使用了数组 toString 方法吗?

最佳答案

数组被强制转换为字符串,例如 [] == ""[1] == "1"[1, 2 ] == "1,2"

当您对字符串进行某些数学运算时,它们会被强制转换为Number 类型。

例如,当您执行 [2] * [2] 时,它变成 "2"* "2" 变成 2 * 2。您甚至可以混合类型并执行 [2] * 2"2"* [2]

当您尝试使用 + 时,它会尝试连接字符串而不是将字符串强制转换为数字。这就是为什么 "2"+ "2""2"+ [2][2] + [2] 都给你“22”

关于javascript - 为什么只有 1 个数字项的数组可用于某些算术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36656845/

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