У меня есть запрос, с которым я столкнулся в своем коде.Разница между «новой датой (d)» и «новой датой (+ d)»
В чем разница между
new Date(d)
и
new Date(+d)
где d=new Date();
У меня есть запрос, с которым я столкнулся в своем коде.Разница между «новой датой (d)» и «новой датой (+ d)»
В чем разница между
new Date(d)
и
new Date(+d)
где d=new Date();
Первый возвращает строку даты
Tue Jan 07 2014 11:37:28 GMT+0000 (locale)
ГП дир должен вернуть UniX метку времени (в миллисекундах)
1389091048652
при входе их, но первый по-прежнему является объектом даты, в то время как второй один просто номер.
Оба являются действительными и могут быть переданы обратно в new Date()
Разница между ними заключается в Выполняемые операции:
new Date(date)
создает new Date
объект путем анализа строковое представление объекта date
new Date(+date)
создает new Date
объекта из временной метки, полученной путем преобразования date
объекта в число
new Date(date.valueOf())
создает new Date
объекта из временной метки, полученной из date
объекта
Эффект такого же, но это jsPerf, как представляется, указывает на третий случай как самый быстрый из всех браузеров, на которых я тестировал. Если тестовые примеры неверны (из-за оптимизации браузера), пожалуйста, помогите, исправив их и комментируя здесь!
'+ d' преобразует дату в метку времени. – A1rPun