Что означает знак плюса в '+ new Date'
Я видел это на нескольких страницах places
function fn() { return +new Date; }
И я 9X_syntax вижу, что он возвращает метку времени, а 9X_javascript-execution не объект даты, но я не могу найти никакой 9X_.js документации о том, что делает знак плюса.
Кто-нибудь 9X_javascript-dom может объяснить?
Ответ #1
Ответ на вопрос: Что означает знак плюса в '+ new Date'
это унарный оператор +, он эквивалентен:
function(){ return Number(new Date); }
см 9X_javascript .: http://xkr.us/articles/javascript/unary-add/
и в MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Unary_plus
- На всякий случай: `+ ...
Ответ #2
Ответ на вопрос: Что означает знак плюса в '+ new Date'
Типизация JavaScript слабо типизирована, поэтому 9X_vanilla-js при определенных обстоятельствах он выполняет 9X_.js приведение / преобразование типов:
http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html
http://www.jibbering.com/faq/faq_notes/type_convert.html
Другие 9X_js примеры:
>>> +new Date() 1224589625406 >>> +"3" 3 >>> +true 1 >>> 3 == "3" true
Ответ #3
Ответ на вопрос: Что означает знак плюса в '+ new Date'
Вот specification относительно оператора "унарного 9X_.js добавления". Надеюсь, это поможет ...
Ответ #4
Ответ на вопрос: Что означает знак плюса в '+ new Date'
Дата JavaScript может быть записана в виде 9X_javascript строки:
Чт, 10 сентября 2015 г., 12:02:54 9X_javascript-dom GMT + 0530 (IST)
или в виде числа:
1441866774938
Даты, записанные 9X_javascript-dom в виде чисел, определяют количество миллисекунд 9X_syntax с 1 января 1970 г., 00:00:00.
Переходя к 9X_ecmascript вашему вопросу, кажется, что добавлением 9X_ecmascript знака "+" после оператора присваивания "=" преобразование 9X_vanilla-js даты в равное числовое значение.
того же 9X_ecmascript можно добиться с помощью функции Number(), например 9X_vanilla-js Number (new Date());
var date = +new Date(); //same as 'var date =number(new Date());'
Ответ #5
Ответ на вопрос: Что означает знак плюса в '+ new Date'
Просто чтобы дать дополнительную информацию:
Если 9X_vanillajs вы помните, когда вы хотите найти разницу 9X_vanilla-javascript во времени между двумя датами, вы просто 9X_vanillajs делаете следующее:
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"
Теперь, если вы проверите 9X_js тип d1-0, это тоже число:
t = new Date() - 0; //numeric value of Date: number of msec's since 1 Jan 1970. typeof t; // "number"
этот + также преобразует 9X_vanillajs дату в число:
typeof (+new Date()) //"number"
Но учтите, что 0 + new Date()
не будет обрабатываться 9X_vanillajs аналогичным образом! он будет объединен 9X_.js как строка:
0 + new Date() // "0Tue Oct 16 05:03:24 PDT 2018"
Ответ #6
Ответ на вопрос: Что означает знак плюса в '+ new Date'
Это оператор унарного добавления, который также используется 9X_javascript-disabled для явного преобразования чисел, поэтому, когда 9X_javascript-library вы вызываете +new Date()
, он пытается получить числовое 9X_js значение этого объекта с помощью valueOf()
, как мы 9X_.js получаем строку из toString()
new Date().valueOf() == (+new Date) // true
-
13
-
11
-
41
-
7
-
17
-
11
-
17
-
4
-
30
-
6
-
7
-
9
-
4
-
5
-
9
-
4
-
3
-
3
-
3
-
10
-
3
-
6
-
6
-
6
-
4
-
3
-
6
-
11
-
3
-
7
-
14
-
9
-
4
-
10
-
4
-
2
-
5
-
2
-
4
-
1
-
5
-
4
-
6
-
5
-
4
-
6
-
3
-
5
-
3
-
3