Ich habe das an einigen Stellen gesehen
function fn() {
return +new Date;
}
Und ich kann sehen, dass es eher einen Zeitstempel als ein Datumsobjekt zurückgibt, aber ich kann keine Dokumentation darüber finden, was das Pluszeichen tut.
Kann jemand erklären?
javascript
syntax
Ken
quelle
quelle
Antworten:
Das ist der unäre Operator +, er entspricht:
siehe: http://xkr.us/articles/javascript/unary-add/
und in MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Unary_plus
quelle
getTime
Methode nicht für das Datumsobjekt verwenden?!.getTime()
wird immer versichern, dass es tut.Date.now()
, was der bevorzugte Weg ist, um Datum und Uhrzeit in Millisekunden zu erhalten.JavaScript ist lose typisiert, daher führt es unter bestimmten Umständen Typzwang / -konvertierung durch:
http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html
http://www.jibbering.com/faq/faq_notes/type_convert.html
Andere Beispiele:
quelle
Ein JavaScript-Datum kann als Zeichenfolge geschrieben werden:
Do 10.09.2015 12:02:54 GMT + 0530 (IST)
oder als Nummer:
1441866774938
Als Zahlen geschriebene Daten geben die Anzahl der Millisekunden seit dem 1. Januar 1970, 00:00:00 an.
Wenn Sie zu Ihrer Frage kommen, wird durch Hinzufügen von '+' nach dem Zuweisungsoperator '=' das Datum in einen Wert mit gleicher Zahl konvertiert.
Gleiches kann mit der Funktion Number () erreicht werden, wie Number (new Date ()).
quelle
Hier ist die Spezifikation bezüglich des Operators "unary add". Ich hoffe es hilft...
quelle
Nur um ein paar Infos zu geben:
Wenn Sie sich erinnern: Wenn Sie den Zeitunterschied zwischen zwei Datumsangaben ermitteln möchten, gehen Sie einfach wie folgt vor:
Wenn Sie nun den Typ von d1-0 überprüfen, ist dies auch eine Zahl:
das + konvertiert auch das Datum in eine Zahl:
Aber beachten Sie, dass
0 + new Date()
wird nicht in ähnlicher Weise behandelt werden! Es wird als Zeichenfolge verkettet:quelle
Es ist ein unärer Add- Operator und wird auch für die explizite Zahlenkonvertierung verwendet. Wenn Sie also aufrufen
+new Date()
, wird versucht, den numerischen Wert dieses Objekts mithilfe vonvalueOf()
Zeichenfolgen abzurufentoString()
quelle
Es macht genau das Gleiche wie:
das hat das gleiche Ergebnis wie:
quelle
new Date/1