var timeInMs = Date.now();
por MDN
vs.
var timeInMs = new Date(optional).getTime();
por MDN .
¿Hay alguna diferencia entre los dos, además de la sintaxis y la capacidad de establecer la fecha (que no sea la actual) a través de opcional en la segunda versión?
Date.now () es más rápido: echa un vistazo al jsperf

Respuestas:
Estas cosas son las mismas ( editar semánticamente; el rendimiento es un poco mejor con
.now()):Sin embargo, el valor de tiempo de cualquier
Dateinstancia ya creada se congela en el momento de su construcción (o en cualquier fecha / hora en la que se haya configurado). Es decir, si haces esto:y luego espere un momento, una llamada posterior a
now.getTime()le dirá la hora en el punto en que se estableció la variable.fuente
dateObj.setTime(Date.now())) o crear nuevos objetos de fecha cada vez que haces algo asincrónico que necesita acceder aDatemétodos (comodateObj.getMinutes())?Son efectivamente equivalentes, pero debes usar
Date.now(). Es más claro y aproximadamente el doble de rápido.Editar: Fuente: http://jsperf.com/date-now-vs-new-date
fuente
Date(optional).getTime();tiene que asignar espacio para obtener un nuevo objeto Date antes de obtener la hora actual?Cuando lo hace
(new Date()).getTime(), está creando un nuevo objeto Date. Si hace esto repetidamente, será aproximadamente 2 veces más lento que Date.now ()El mismo principio debería aplicarse para
Array.prototype.slice.call(arguments, 0)vs[].slice.call(arguments, 0)fuente
Si, eso es correcto; son efectivamente equivalentes cuando se usa la hora actual.
fuente
A veces es preferible mantener alguna variable de seguimiento de tiempo en un formato de objeto Date en lugar de solo una cantidad de milisegundos, para tener acceso a los métodos de Date sin volver a crear instancias. En ese caso, Date.now () todavía gana sobre el nuevo Date () o similar, aunque solo en aproximadamente un 20% en mi Chrome y en una pequeña cantidad en IE.
Ver mi JSPERF en
vs.
http://jsperf.com/new-date-vs-settime
fuente