1

重複の可能性:
Javascript で ",,," == Array(4) となるのはなぜですか?

JavaScript ではなぜ

",,," == new Array(4)

Chrome デベロッパー ツールと nodejs コンソールで true を返します。

4

4 に答える 4

5
console.log(new Array(4).toString()); // ",,,"

上記の値で文字列にキャストされ、両方が等しくなります。

",,," == ",,," // true

JS は、左側が文字列で、右側が比較に適していない配列であることを認識し、配列を文字列にキャストしてから比較を行います。

次の点に注意してください。

log(",,," === new Array(4));

のチェックだけでなく、タイプももちろん異なるfalseため、結果は次のようになります。===valuetype

于 2012-06-10T18:27:56.660 に答える
2

は暗黙的に文字列にキャストされているためnew Array(4)、これは等しくなります",,,"(4 つの空の要素、カンマで区切られています)。

于 2012-06-10T18:26:30.047 に答える
2

Array(4).toString()戻り値- 4 つの空の要素なので",,,"、それらの間のコンマのみ

于 2012-06-10T18:26:48.780 に答える
1

文字列形式の配列は、要素のカンマ区切りのリストを生成します1,2,3,4。配列に要素がない場合は、 として表示され,,,ます。

(new Array(4)).toString()生成し,,,ます。

new Array(4) === ",,,"falseを返すことに注意してください。

于 2012-06-10T18:28:34.880 に答える