Widziałem to w kilku miejscach
function fn() {
return +new Date;
}
Widzę, że zwraca znacznik czasu, a nie obiekt daty, ale nie mogę znaleźć żadnej dokumentacji na temat tego, co robi znak plus.
Czy ktoś może wyjaśnić?
javascript
syntax
Rozpoznać
źródło
źródło
Odpowiedzi:
to jest operator jednoargumentowy, jest to równoważne z:
patrz: http://xkr.us/articles/javascript/unary-add/
oraz w MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Unary_plus
źródło
getTime
metody na obiekcie daty ?!.getTime()
zawsze upewni się, że tak będzie.Date.now()
, który jest preferowanym sposobem uzyskiwania daty i godziny w milisekundach.JavaScript jest luźno wpisany, więc w pewnych okolicznościach dokonuje przymusu / konwersji typu:
http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html
http://www.jibbering.com/faq/faq_notes/type_convert.html
Inne przykłady:
źródło
Data JavaScript może być zapisana jako ciąg:
Czw 10 września 2015 12:02:54 GMT + 0530 (IST)
lub jako liczba:
1441866774938
Daty zapisane jako liczby określają liczbę milisekund od 1 stycznia 1970 r., 00:00:00.
W odpowiedzi na twoje pytanie wydaje się, że dodając „+” po operatorze przypisania „=”, konwertuje Data na wartość równą liczbie.
to samo można osiągnąć za pomocą funkcji Number (), na przykład Number (new Date ());
źródło
Oto specyfikacja dotycząca operatora „unary add”. Mam nadzieję, że to pomoże...
źródło
Aby podać więcej informacji:
Jeśli pamiętasz, gdy chcesz znaleźć różnicę czasu między dwiema datami, po prostu wykonaj następujące czynności;
teraz, jeśli zaznaczysz typ d1-0, jest to również liczba:
ten + przekształci również datę na liczbę:
Ale uwaga, że
0 + new Date()
będzie nie być traktowane podobnie! będzie konkatenowany jako ciąg:źródło
Jest to jednoargumentowy operator dodawania , który jest również używany do jawnej konwersji liczb, więc kiedy wywołujesz
+new Date()
, próbuje uzyskać wartość liczbową tego obiektu przy użyciu,valueOf()
tak jak otrzymujemy ciąg ztoString()
źródło
Robi dokładnie to samo, co:
który ma taki sam wynik jak:
źródło
new Date/1