我真的很困惑。如果我这样做:
[1].slice(1)
它返回一个空数组(在 chrome 交互式控制台中)。但如果我比较:
[1].slice(1) === []
它总是错误的。所以我的问题是, [1].slice(1) 真正返回什么?
问问题
605 次
4 回答
8
===
通过引用比较对象。
您正在比较两个不同的数组对象,它们都是空的。
如果要检查数组是否为空,请检查.length === 0
.
于 2012-08-13T16:52:17.327 回答
1
这不是slice
or的问题===
。
如果你这样做[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 回答