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ため、結果は次のようになります。===valuetype
は暗黙的に文字列にキャストされているためnew Array(4)、これは等しくなります",,,"(4 つの空の要素、カンマで区切られています)。
Array(4).toString()戻り値- 4 つの空の要素なので",,,"、それらの間のコンマのみ
文字列形式の配列は、要素のカンマ区切りのリストを生成します1,2,3,4。配列に要素がない場合は、 として表示され,,,ます。
(new Array(4)).toString()生成し,,,ます。
new Array(4) === ",,,"falseを返すことに注意してください。