私はいくつかのソースコードを読んでいて、これを見つけました。 why + new Date()は、new Date()。getTime()と同じものを返します。その背後にあるメカニズムは何ですか?なぜ+ new Date()は新しいDate()。getTime()と同じものを返しますか?
var date = new Date()
+data == date.getTime() // true
私はいくつかのソースコードを読んでいて、これを見つけました。 why + new Date()は、new Date()。getTime()と同じものを返します。その背後にあるメカニズムは何ですか?なぜ+ new Date()は新しいDate()。getTime()と同じものを返しますか?
var date = new Date()
+data == date.getTime() // true
単精度+
演算子(文字列以外の型で使用される場合)は内部的にvalueOf
を呼び出します。日付の場合、機能的にはDate.prototype.getTime
と等価です。両方とも同じものを実行するため、abstract operationです。
どうやって言いましたか? ;)FWIW、Date.prototype.valueOf'は、値が別の型の値ではなく日付オブジェクトである場合にのみ呼び出されます。 –
@FelixKling私は同時に私の答えを書いていました。私はタイムスタンプ特権をあまりにも熟考しないだろう。 – Knu
The unary +
operatorは、オペランドを数値に変換します。このプロセスでは、date.valueOf
が呼び出され、date.getTime
と同じ計算が実行されます。
なぜでしょうか? 'date.valueOf()'も同じ値を返すことに注意してください。 – Bergi