0

以下のコードでls_a === aが返される理由がわかりません。false日付を文字列に変換して日付に戻すと、何かが失われているようですが、何ですか??

JSFiddle: http://jsfiddle.net/s6accbax/

var a = new Date();
localStorage.a = a.getTime();
ls_a = new Date(parseInt(localStorage.a));

console.log(a);    // Fri Jun 12 2015 22:12:34 GMT-0600 (MDT)
console.log(ls_a); // Fri Jun 12 2015 22:12:34 GMT-0600 (MDT)
console.log(ls_a === a); // returns false!?!?!
console.log(ls_a.getTime() === a.getTime()); // returns true as expected
4

2 に答える 2

4

の複製: JavaScript 日付オブジェクトの比較

これは、オブジェクトとして比較されない文字列を取得しているときとls_aは異なるオブジェクトであるためです。a.getTime()

于 2015-06-13T04:29:05.360 に答える
1

を使用する場合、型変換===は行われないため、ls_a は a と同等ではありません。

厳密な等価演算子 === は、同じ型を持つ等しい値のみを考慮します。

于 2015-06-13T04:30:12.850 に答える