4

我真的很困惑。如果我这样做:
[1].slice(1)
它返回一个空数组(在 chrome 交互式控制台中)。但如果我比较:
[1].slice(1) === []
它总是错误的。所以我的问题是, [1].slice(1) 真正返回什么?

4

4 回答 4

8

===通过引用比较对象。
您正在比较两个不同的数组对象,它们都是空的。

如果要检查数组是否为空,请检查.length === 0.

于 2012-08-13T16:52:17.327 回答
1

这不是sliceor的问题===

如果你这样做[1]==[1],它会返回false

那是因为=====通过引用比较对象

于 2012-08-13T17:01:44.520 回答
-1

[] === []也返回假。[1].slice(1)实际上确实返回[]

于 2012-08-13T16:50:32.147 回答
-1

你最好检查一下长度:

[1].slice(1).length; // falsey
于 2012-08-13T16:52:47.480 回答