当您尝试将一个数组添加到JavaScript中的另一个数组时,它将变成一个字符串。通常,当以另一种语言执行此操作时,将合并列表。

JavaScript

[1, 2] + [3, 4] = "1,23,4"

Python
[1, 2] + [3, 4] = [1, 2, 3, 4]

我不是要就哪种语言更好发起一场火焰大战。但是JavaScript对我来说毫无意义。 JavaScript这么做为什么有逻辑上的原因?还是仅仅是一种语言上的怪癖?

最佳答案

是的,JavaScript(JS)有很多“怪癖”可以轻描淡写。要获得所需的行为,可以使用concat方法。 [1, 2].concat([3, 4])
正如Douglas Crockford在他的出色著作中所说的那样,造成混淆的原因是JS中的“JavaScript:好的部分”数组是“Phony Arrays”((除了别的以外,它们不对内存进行线性分配))。它们实际上是具有类似Array特征的对象,它们是从Array.prototype继承的。这是好是坏,所以要当心。

实际上,他将JS数组放在JS部分的“糟糕的部分”中,JS中所有无法避免的问题都归咎于此。

关于javascript - JavaScript数组+数组=字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23450642/

10-10 23:40
查看更多