var timeInMs = Date.now();
MDNごと
対
var timeInMs = new Date(optional).getTime();
MDNごと。
2番目のバージョンでは、構文と、オプションで日付を(現在ではなく)設定する機能以外に、2つの間に違いはありますか?
Date.now()の方が高速です-jsperfをチェックしてください
var timeInMs = Date.now();
MDNごと
対
var timeInMs = new Date(optional).getTime();
MDNごと。
2番目のバージョンでは、構文と、オプションで日付を(現在ではなく)設定する機能以外に、2つの間に違いはありますか?
Date.now()の方が高速です-jsperfをチェックしてください
回答:
これらは同じです(意味的に編集します。パフォーマンスが少し向上します.now())。
var t1 = Date.now();
var t2 = new Date().getTime();
ただし、すでに作成されているDateインスタンスの時間値は、その構築時(または設定されている任意の日時)に凍結されます。つまり、これを行うと:
var now = new Date();
しばらく待ってから、次のを呼び出すとnow.getTime()、変数が設定された時点の時間がわかります。
dateObj.setTime(Date.now())にアクセスDateする必要がある非同期処理(などdateObj.getMinutes())を実行するたびに、その日付オブジェクト()を更新するか、新しい日付オブジェクトを作成する方がパフォーマンスが良いと思いますか?
これらは事実上同等ですが、を使用する必要がありますDate.now()。より明確で、約2倍の速さです。
編集:ソース:http : //jsperf.com/date-now-vs-new-date
Date(optional).getTime();、現在の時刻を取得する前に新しいDateオブジェクトを取得するためにスペースを割り当てる必要があるためですか?
これを行う(new Date()).getTime()と、新しいDateオブジェクトが作成されます。これを繰り返し行うと、Date.now()よりも約2倍遅くなります。
同じ原則がArray.prototype.slice.call(arguments, 0)vs[].slice.call(arguments, 0)
再インスタンス化せずにDateのメソッドにアクセスするには、時間追跡変数を単なるミリ秒数ではなく、Dateオブジェクト形式で保持することが望ましい場合があります。その場合、Chromeでは約20%、IEではわずかですが、Date.now()は新しいDate()などよりも優れています。
私のJSPERFを参照してください
timeStamp2.setTime(Date.now()); // set to current;
対
timeStamp1 = new Date(); // set to current;