我对此感到非常困惑。如果我做这样的事情:[1].slice(1)
它返回一个空数组(在 Chrome 交互式控制台中)。但是如果我比较:[1].slice(1) === []
它总是错误的。所以我的问题是,[1].slice(1) 真正返回的是什么?
>===
通过引用比较对象。
您正在比较两个不同的数组对象,它们都是空的。
如果要检查数组是否为空,请检查是否.length === 0
。
这不是
slice
或===
的问题。
如果执行[1]==[1]
,则返回false
。
这是因为==
和===
都通过引用比较对象
[] === []
也返回 false。 [1].slice(1)
实际上确实返回了[]
你最好检查长度:
[1].slice(1).length; // falsey