Command Palette

Search for a command to run...

Bracket Notation: Acceso Dinámico a Propiedades

Domina la notación de corchetes para acceder a propiedades de objetos dinámicamente y manejar nombres con caracteres especiales.

Lectura: 10 min
Nivel: Principiante

TL;DR - Resumen rápido

  • Bracket notation usa corchetes [] para acceder a propiedades
  • Permite acceso dinámico usando variables como nombres de propiedad
  • Es necesaria para propiedades con espacios o caracteres especiales
  • Los nombres de propiedad se convierten a strings automáticamente
  • Es más flexible pero menos legible que dot notation

Introducción a Bracket Notation

La bracket notation es una forma alternativa de acceder a las propiedades de un objeto en JavaScript. A diferencia de la dot notation (objeto.propiedad), la bracket notation usa corchetes (objeto["propiedad"]) y permite un acceso mucho más flexible y dinámico a las propiedades.

Mientras que la dot notation es más legible y preferida cuando conoces el nombre de la propiedad de antemano, la bracket notation es esencial cuando necesitas acceder a propiedades dinámicamente o cuando los nombres de las propiedades no son identificadores válidos de JavaScript.

Cuándo usar bracket notation

Usa bracket notation cuando el nombre de la propiedad está en una variable, cuando contiene espacios o caracteres especiales, o cuando necesitas construir el nombre de la propiedad dinámicamente en tiempo de ejecución.

Sintaxis Básica

La sintaxis básica de bracket notation consiste en escribir el nombre del objeto, seguido de corchetes que contienen el nombre de la propiedad como un string. Es importante notar que el nombre de la propiedad debe estar entre comillas, ya que JavaScript lo interpreta como una expresión.

sintaxis-basica.js
Loading code...

En este ejemplo, accedemos a las propiedades del objeto usuario usando bracket notation. Note que cada nombre de propiedad está entre comillas, lo que indica que es un string literal. Esta es la forma fundamental de usar bracket notation.

Error común: olvidar las comillas

Un error común es escribir objeto[ propiedad ] sin comillas. Esto hace que JavaScript busque una variable llamada propiedad en lugar de usar el string "propiedad". Siempre usa comillas para nombres literales de propiedad.

Acceso Dinámico

Una de las características más poderosas de bracket notation es que permite el acceso dinámico a propiedades. Puedes usar una variable que contenga el nombre de la propiedad, y JavaScript usará el valor de esa variable para acceder a la propiedad correspondiente. Esto es imposible con dot notation.

acceso-dinamico.js
Loading code...

Este ejemplo demuestra cómo puedes acceder a diferentes propiedades del mismo objeto usando una variable. La clavePropiedad contiene el nombre de la propiedad que queremos acceder, y bracket notation usa ese valor para determinar qué propiedad leer.

Construcción dinámica de nombres

Puedes construir nombres de propiedades dinámicamente concatenando strings o usando template literals dentro de los corchetes. Esto es especialmente útil cuando trabajas con APIs que devuelven datos estructurados de manera predecible.

construccion-dinamica.js
Loading code...

En este caso, construimos el nombre de la propiedad dinámicamente usando template literals. Esto permite acceder a propiedades que siguen un patrón de nombres sin tener que escribir cada acceso individualmente.

Patrón de uso común

Este patrón es muy común cuando trabajas con datos de APIs que usan prefijos o sufijos en los nombres de propiedades, como "usuario1", "usuario2", "dato2023", "dato2024", etc.

Propiedades con Caracteres Especiales

Bracket notation es la única forma de acceder a propiedades cuyos nombres no son identificadores válidos de JavaScript. Esto incluye propiedades que contienen espacios, guiones, comienzan con números, o contienen caracteres especiales como @, #, $, etc.

propiedades-especiales.js
Loading code...

Este ejemplo muestra propiedades con nombres que no son identificadores válidos. Ninguna de estas propiedades puede ser accedida con dot notation, pero todas funcionan perfectamente con bracket notation.

Nombres que comienzan con números

Aunque es posible crear propiedades cuyos nombres comienzan con números, esto generalmente se considera una mala práctica porque hace el código más difícil de leer y puede causar confusiones. Sin embargo, si necesitas acceder a tales propiedades, bracket notation es obligatoria.

nombres-numericos.js
Loading code...

Note que aunque el nombre de la propiedad es "1a", JavaScript lo trata como un string. Esto es válido, pero confuso, por lo que se recomienda evitar este tipo de nombres de propiedad en la medida de lo posible.

Modificar y Crear Propiedades

Bracket notation no solo sirve para leer propiedades, sino también para modificar valores existentes y crear nuevas propiedades. Funciona de la misma manera que dot notation para estas operaciones, pero con la ventaja de poder usar nombres dinámicos.

modificar-crear.js
Loading code...

Este ejemplo muestra cómo modificar una propiedad existente y crear una nueva usando bracket notation. La propiedad "email" se modifica dinámicamente, y se crea una nueva propiedad "telefono" también de forma dinámica.

Comportamiento idéntico a dot notation

Para modificar y crear propiedades, bracket notation y dot notation se comportan de manera idéntica. La única diferencia es que bracket notation permite nombres dinámicos o con caracteres especiales.

Dot Notation vs Bracket Notation

Es importante entender cuándo usar cada forma de notación. Aunque ambas acceden a propiedades de objetos, tienen diferentes casos de uso y ventajas. Elegir la correcta hace tu código más legible y mantenible.

  • <strong>Dot notation</strong>: Más legible y concisa para nombres de propiedades conocidos y válidos
  • <strong>Bracket notation</strong>: Necesaria para acceso dinámico y propiedades con caracteres especiales
  • <strong>Dot notation</strong>: No funciona con propiedades que no son identificadores válidos
  • <strong>Bracket notation</strong>: Permite usar variables y expresiones como nombres de propiedad
  • <strong>Dot notation</strong>: Preferida por la mayoría de linters y guías de estilo cuando es posible
comparacion.js
Loading code...

Este ejemplo muestra cuándo usar cada notación. Para acceso estático con nombres válidos, dot notation es preferida. Para acceso dinámico o propiedades con caracteres especiales, bracket notation es necesaria.

Preferencia de linters

Herramientas como ESLint generalmente prefieren dot notation cuando es posible porque es más legible y menos propensa a errores. Solo usa bracket notation cuando sea realmente necesario.

Resumen: Bracket Notation

Conceptos principales:

  • Bracket notation usa corchetes [] para acceder a propiedades
  • Permite acceso dinámico usando variables como nombres
  • Es necesaria para propiedades con espacios o caracteres especiales
  • Los nombres de propiedad se evalúan como expresiones
  • Puede modificar y crear propiedades como dot notation

Mejores prácticas:

  • Usa dot notation cuando el nombre es un identificador válido
  • Usa bracket notation para acceso dinámico o propiedades especiales
  • Siempre usa comillas para nombres literales en bracket notation
  • Prefiere nombres de propiedad que sean identificadores válidos
  • Usa bracket notation cuando el nombre está en una variable