gpt4 book ai didi

javascript - 为什么添加两个单元素数组会得到一个字符串,而减去它们会得到一个数字?

转载 作者:行者123 更新时间:2023-12-01 01:06:35 24 4
gpt4 key购买 nike

*已编辑

我最近偶然发现了 js 中数组的一个有趣且特殊的问题。

enter image description here

正如你在上面看到的,减法给了我一个数字,但加法给了我一个字符串。我也尝试过同样的乘法和除法,并在这两种情况下都得到了数字。

然后我变得更好奇并尝试使用多元素数组,这是结果

enter image description here

现在我真的很想弄清楚这是如何以及为什么会发生。请帮我解决这个问题。

编辑:我添加了更多示例,下面是结果

enter image description here

正如您在上面看到的,“1”+“1”是“11”,这看起来不错,但是 [] 返回一个空数组并且 [ 1 ] 返回 1,键为 0,正如我们所知,数组也是对象,这会导致困惑。

最佳答案

对数组中的元素进行操作时,+ 运算符执行串联,而不是加法。

例如,如果您尝试执行 [1, 2, 3] + [4, 5, 6] 的情况,控制台会将数组视为字符串并连接加数直接与被加数相加,得到结果“1, 2, 34, 5, 6”。 -、/、*、% 运算符执行算术运算,是整数运算而不是字符串或数组运算,并且不能对数组执行。这就是返回 NaN 的原因。

如果您想知道为什么这些数字作为字符串添加在一起,这是因为类型强制。连接是字符串操作,而不是整数操作,因此数字将转换为字符串。

如果要将一个数组附加到另​​一个数组,可以使用.concat()。如果您想添加每个元素(即 [0]1 + [0]2,...),您可以使用 for环形。如果您想对列表中的元素求和,请使用带有累加器的reduce。

<小时/>

链接:Explanation , Type conversion docs

相关标签: , , , ,

关于javascript - 为什么添加两个单元素数组会得到一个字符串,而减去它们会得到一个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55579558/

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