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