JavaScript ではなぜ
",,," == new Array(4)
Chrome デベロッパー ツールと nodejs コンソールで true を返します。
JavaScript ではなぜ
",,," == new Array(4)
Chrome デベロッパー ツールと nodejs コンソールで true を返します。
console.log(new Array(4).toString()); // ",,,"
上記の値で文字列にキャストされ、両方が等しくなります。
",,," == ",,," // true
JS は、左側が文字列で、右側が比較に適していない配列であることを認識し、配列を文字列にキャストしてから比較を行います。
次の点に注意してください。
log(",,," === new Array(4));
のチェックだけでなく、タイプももちろん異なるfalse
ため、結果は次のようになります。===
value
type
は暗黙的に文字列にキャストされているためnew Array(4)
、これは等しくなります",,,"
(4 つの空の要素、カンマで区切られています)。
Array(4).toString()
戻り値- 4 つの空の要素なので",,,"
、それらの間のコンマのみ
文字列形式の配列は、要素のカンマ区切りのリストを生成します1,2,3,4
。配列に要素がない場合は、 として表示され,,,
ます。
(new Array(4)).toString()
生成し,,,
ます。
new Array(4) === ",,,"
falseを返すことに注意してください。