Las dos formas más comunes de acceder a las propiedades en JavaScript son con un punto y entre corchetes. Ambos value.x and value[x]
acceden a una propiedad en valor, pero no necesariamente la misma propiedad. La diferencia está en cómo se interpreta x. Cuando se usa un punto, la parte que sigue al punto debe ser un nombre de variable válido y nombra directamente la propiedad. Cuando se utilizan corchetes, la expresión entre corchetes se evalúa para obtener el nombre de la propiedad. Mientras que value.x obtiene la propiedad del valor llamado "x", el valor [x] intenta evaluar la expresión x y utiliza el resultado como el nombre de la propiedad.
Entonces, si sabe que la propiedad que le interesa se llama “longitud”, usted dice value.length
. Si desea extraer la propiedad nombrada por el valor contenido en la variable i
, diga value[i]
. Y debido a que los nombres de propiedades pueden ser cualquier cadena, si desea acceder a una propiedad llamada “2”
o “John Doe”
, debe utilizar corchetes: value[2] or value["John Doe"]
. Este es el caso a pesar de que conoce el nombre preciso de la propiedad de antemano, porque ninguno de los dos “2” nor “John Doe”
es un nombre de variable válido y, por lo tanto, no se puede acceder a él mediante la notación de puntos.
En caso de matrices
Los elementos en una matriz se almacenan en propiedades. Debido a que los nombres de estas propiedades son números y, a menudo, necesitamos obtener su nombre de una variable, tenemos que usar la sintaxis de paréntesis para acceder a ellos. La propiedad de longitud de una matriz nos dice cuántos elementos contiene. Este nombre de propiedad es un nombre de variable válido, y conocemos su nombre de antemano, por lo que para encontrar la longitud de una matriz, normalmente escribe array.length
porque es más fácil de escribir que array["length"]
.