具有一个元素的数组上的Array.slice

时间:2012-08-13 16:49:09

标签: javascript arrays slice

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

4 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:1)

这不是slice===的问题。

如果您执行[1]==[1],则会返回false

这是因为=====都通过引用来比较对象

答案 2 :(得分:-1)

[] === []也会返回false。 [1].slice(1)确实会返回[]

答案 3 :(得分:-1)

你最好检查长度:

[1].slice(1).length; // falsey