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