これは数か所で見たことがある
function fn() {
return +new Date;
}
また、日付オブジェクトではなくタイムスタンプを返していることがわかりますが、プラス記号が何をしているのかに関するドキュメントは見つかりません。
誰でも説明できますか?
これは数か所で見たことがある
function fn() {
return +new Date;
}
また、日付オブジェクトではなくタイムスタンプを返していることがわかりますが、プラス記号が何をしているのかに関するドキュメントは見つかりません。
誰でも説明できますか?
それが+
単項演算子です。それは以下と同等です:
function(){ return Number(new Date); }
http://xkr.us/articles/javascript/unary-addおよびMDNを参照してください。
JavaScript は緩く型付けされているため、特定の状況で型強制/変換を実行します。
http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html
http://www.jibbering.com/faq/faq_notes/type_convert.html
その他の例:
>>> +new Date()
1224589625406
>>> +"3"
3
>>> +true
1
>>> 3 == "3"
true
「単項加算」演算子に関する仕様は次のとおりです。それが役に立てば幸い...
覚えていれば、2 つの日付の時差を見つけたいときは、次のようにするだけです。
var d1 = new Date("2000/01/01 00:00:00");
var d2 = new Date("2000/01/01 00:00:01"); //one second later
var t = d2 - d1; //will be 1000 (msec) = 1 sec
typeof t; // "number"
d1-0 のタイプを確認すると、これも数値です。
t = new Date() - 0; //numeric value of Date: number of msec's since 1 Jan 1970.
typeof t; // "number"
また、日付+
を数値に変換します。
typeof (+new Date()) //"number"
ただし、同様に扱われない0 + new Date()
ことに注意してください。文字列として連結されます。
0 + new Date() // "0Tue Oct 16 05:03:24 PDT 2018"
以下とまったく同じことを行います。
function(){ return 0+new Date; }
次と同じ結果になります。
function(){ return new Date().getTime(); }