[]是Array的实例,但“”不是String

时间:2012-09-03 22:25:08

标签: javascript arrays string

  

可能重复:
  Why does instanceof return false for some literals?

如果我......

[] instanceof Array;

...虽然我没有使用true,但它会返回new Array()

但如果我这样做......

"" instanceof String;

...它返回false,因为我没有使用new String()

为什么呢?我知道[]是用于创建数组的语言构造,""是用于创建字符串的语言构造。所以我不明白为什么一个返回true而另一个返回false

此外,以下所有代码都会返回true

[] instanceof Array; /* true */
Array() instanceof Array; /* true */
new Array() instanceof Array; /* true */

但是有字符串:

"" instanceof String; /* false */
String() instanceof String; /* false */
new String() instanceof String; /* true */

String() instanceof String不应该还true吗?

修改

我提出了一个新问题(剥离了这个问题):Easy way to check if a variable is a string?

0 个答案:

没有答案