如果我......
[] 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?