Tengo una pregunta sobre la matriz vacía e indefinida.
por favor vea mis códigos abajo
const arr = [] arr[1]=1 arr[2]=2 arr[3]=3 arr[5]=5 console.log(arr[4])// console: undefined console.log(arr)// console: [empty, 1,2,3,empty,5]así que no entendí la diferencia entre dos resultados colsole
¿Por qué console.log(arr[4]) no está definido pero el índice 4 de console.log(arr) está vacío?
por favor ayúdame gracias
Cuando lee una propiedad que no existe, obtiene el valor undefined . Eso es JS estándar.
Cuando registra una matriz completa, no está leyendo la propiedad explícitamente, por lo que la consola distingue útilmente entre "no tiene valor" y "explícitamente tiene el valor undefined ".
La interfaz de la consola del navegador agrega la palabra empty .
El estado correcto de un elemento de matriz no asignado no está undefined , y JS se lo proporciona cuando intenta acceder a él. Además de esto, la interpretación de los elementos de matriz no asignados está sujeta al sistema que los interpreta.
Aquí hay unos ejemplos:
let arr = new Array(2); console.log(arr[0]); //undefined console.log(arr); //In SO - [undefined, undefined]. In browser [empty x 2] console.log(JSON.stringify(arr)); // [null, null]