Что делает знак "плюс" в "+ новой дате",

Я видел это в нескольких местах

function fn() {
    return +new Date;
}

И я вижу, что он возвращает метку времени, а не объект даты, но я не могу найти документацию о том, что делает знак плюса.

Может ли кто-нибудь объяснить?

Ответы

Ответ 3

Ниже приведена спецификация относительно оператора унарного добавления. Надеюсь, это поможет...

Ответ 4

Дата JavaScript может быть записана в виде строки:

Чт 10.10 2015 12:02:54 GMT + 0530 (IST)

или как число:

1441866774938

Даты, записанные как числа, определяют количество миллисекунд с 1 января 1970 года, 00:00:00.

Подойдя к вашему вопросу, он сглаживает это, добавляя '+' после оператора присваивания '=', преобразовывая Date в равное числовое значение.

то же самое можно достичь с помощью функции Number(), например Number (new Date());

var date = +new Date(); //same as 'var date =number(new Date());'

Ответ 5

Это унарный оператор добавления и также используется для явного преобразования чисел, поэтому, когда вы вызываете +new Date(), он пытается получить числовое значение этого объекта с помощью valueOf(), как мы получаем строку из toString()

new Date().valueOf() == (+new Date)  // true

Ответ 6

Он делает то же самое, что:

function(){ return 0+new Date; }

который имеет тот же результат, что и:

function(){ return new Date().getTime(); }