He visto esto en algunos lugares.
function fn() {
return +new Date;
}
Y puedo ver que está devolviendo una marca de tiempo en lugar de un objeto de fecha, pero no puedo encontrar ninguna documentación sobre lo que está haciendo el signo más.
¿Alguien puede explicar?
javascript
syntax
Conocido
fuente
fuente
Respuestas:
ese es el operador + unario, es equivalente a:
ver: http://xkr.us/articles/javascript/unary-add/
y en MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Unary_plus
fuente
getTime
método definido en el objeto de fecha?.getTime()
siempre se asegurará de que lo haga.Date.now()
, que es la forma preferida de obtener la fecha y la hora en milisegundos.JavaScript se escribe libremente, por lo que realiza la coerción / conversión de tipos en ciertas circunstancias:
http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html
http://www.jibbering.com/faq/faq_notes/type_convert.html
Otros ejemplos:
fuente
Una fecha de JavaScript se puede escribir como una cadena:
Jue 10 sep 2015 12:02:54 GMT + 0530 (IST)
o como un número:
1441866774938
Las fechas escritas como números especifican el número de milisegundos desde el 1 de enero de 1970 a las 00:00:00.
En cuanto a su pregunta, parece que al agregar '+' después del operador de asignación '=', convertir la Fecha en un valor de número igual.
lo mismo se puede lograr usando la función Number (), como Number (new Date ());
fuente
Aquí está la especificación con respecto al operador "agregar unario". Espero eso ayude...
fuente
Solo para dar más información:
Si recuerda, cuando desee encontrar la diferencia horaria entre dos fechas, simplemente haga lo siguiente;
ahora si marca el tipo de d1-0, también es un número:
that + también convertirá la Fecha en Número:
Pero tenga en cuenta que
0 + new Date()
va a no ser tratado de manera similar! se concatenará como cadena:fuente
Es un operador de suma unario y también se usa para la conversión explícita de números, por lo que cuando llama
+new Date()
, intenta obtener el valor numérico de ese objeto usandovalueOf()
como obtenemos cadenas detoString()
fuente
Hace exactamente lo mismo que:
que tiene el mismo resultado que:
fuente
new Date/1