matrices son "especiales" en sólo un par de maneras:
- Tienen algunos métodos de arreglo similar interesantes de su prototipo ("slice()", etc)
- Tienen una "mágica"
length
propiedad que rastrea la mayor propiedad "name" numérico
Si almacena algo en la posición 10299123 en una matriz de nueva construcción, el tiempo de ejecución no consume toda la memoria asignar una matriz real, vacío. En su lugar, se almacena todo lo que desee almacenar y se asegura de que length
se actualiza a 10299124.
Ahora el problema específicamente con las fechas, si estamos hablando acerca del almacenamiento de la marca de tiempo, es que (yo creo ) que' re mayor que los enteros de 32 bits. Los índices de matriz están limitados a ese tamaño. Sin embargo, todo lo que eso significa es que length
no será correcto. Si usted realmente no se preocupan por ninguna de las cosas matriz de todos modos, a continuación, realmente todo lo que necesita es un objeto claro:
var dateStorage = {};
dateStorage[someDate.getTime()] = "whatever";
JavaScript objetos se pueden utilizar como nombre-valor se asigna el tiempo que el nombre puede ser representado como una cadena (que es claramente cierto para los números).
Esa fue una gran respuesta. –
Gracias. Me gustaría recibir una respuesta con más detalles técnicos sobre el almacenamiento de Array en JS. Las marcas de tiempo de Unix son enteros de 32 bits. –
El tema de los tipos numéricos de JavaScript es muy extraño y complicado. El documento estándar de ECMA es largo y tedioso, pero tiene descripciones bastante claras (aunque exhaustivamente detalladas) de la semántica del lenguaje. Las descripciones de Array en particular son, para mí, bastante sencillas. – Pointy