2

可能重复:
为什么 instanceof 对某些文字返回 false?

如果我做...

[] 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吗?

编辑:

我提出了一个新问题(这个问题的衍生问题):检查变量是否为字符串的简单方法?

4

0 回答 0