Я видел это в нескольких местах
function fn() {
return +new Date;
}
И я вижу, что он возвращает метку времени, а не объект даты, но я не могу найти никакой документации о том, что делает знак плюс.
Кто-нибудь может объяснить?
javascript
syntax
кругозор
источник
источник
Ответы:
это унарный оператор +, это эквивалентно:
см .: http://xkr.us/articles/javascript/unary-add/
и в MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Unary_plus
источник
getTime
метод для объекта date ?!.getTime()
всегда буду гарантироватьDate.now()
, который является предпочтительным способом получения даты и времени в миллисекундах.JavaScript является свободно типизированным, поэтому он выполняет приведение / преобразование типов в определенных обстоятельствах:
http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html
http://www.jibbering.com/faq/faq_notes/type_convert.html
Другие примеры:
источник
Дата JavaScript может быть записана в виде строки:
Чт 10 сентября 2015 12:02:54 GMT + 0530 (IST)
или как число:
1441866774938
Даты, записанные в виде чисел, указывают количество миллисекунд с 1 января 1970 года, 00:00:00.
Возвращаясь к вашему вопросу, он добавляет, что, добавив «+» после оператора присваивания «=», конвертирует дату в равное числовое значение.
того же можно достичь с помощью функции Number (), например Number (new Date ());
источник
Вот спецификация относительно оператора «унарного сложения». Надеюсь, поможет...
источник
Просто чтобы дать больше информации:
Если вы помните, когда вы хотите найти разницу во времени между двумя датами, вы просто делаете следующее;
Теперь, если вы проверите тип d1-0, это также число:
+ также преобразует дату в число:
Но обратите внимание , что
0 + new Date()
будет не относиться так же! это будет объединено как строка:источник
Это унарный оператор сложения, который также используется для явного преобразования чисел, поэтому при вызове
+new Date()
он пытается получить числовое значение этого объекта, используя,valueOf()
как мы получаем строку изtoString()
источник
Он делает то же самое, что и:
это имеет тот же результат, что и:
источник
new Date/1