私が行った場合...
[] 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んか?
編集:
新しい質問を作成しました (この質問のスピンオフ):変数が文字列かどうかを確認する簡単な方法は?