As duas maneiras mais comuns de acessar propriedades no JavaScript são com um ponto e entre colchetes. Ambos value.x and value[x]
acessam uma propriedade em valor - mas não necessariamente a mesma propriedade. A diferença está em como x é interpretado. Ao usar um ponto, a parte após o ponto deve ser um nome de variável válido e nomeia diretamente a propriedade. Ao usar colchetes, a expressão entre colchetes é avaliada para obter o nome da propriedade. Enquanto value.x busca a propriedade do valor chamado “x”, o valor [x] tenta avaliar a expressão x e usa o resultado como o nome da propriedade.
Então, se você sabe que o imóvel em que você está interessado se chama “comprimento”, você diz value.length
. Se você deseja extrair a propriedade nomeada pelo valor mantido na variável i
, você diz value[i]
. E porque os nomes de propriedade pode ser qualquer cadeia, se você quiser acessar uma propriedade chamada “2”
ou “John Doe”
, você deve usar colchetes: value[2] or value["John Doe"]
. Esse é o caso mesmo que você saiba o nome exato da propriedade com antecedência, porque nenhum “2” nor “John Doe”
é um nome de variável válido e, portanto, não pode ser acessado por meio de notação de ponto.
No caso de matrizes
Os elementos em uma matriz são armazenados em propriedades. Como os nomes dessas propriedades são números e geralmente precisamos obter o nome de uma variável, precisamos usar a sintaxe do colchete para acessá-los. A propriedade length de uma matriz nos diz quantos elementos ela contém. Esse nome de propriedade é um nome de variável válido e sabemos seu nome com antecedência; portanto, para encontrar o comprimento de uma matriz, você normalmente escreve array.length
porque é mais fácil escrever do que array["length"]
.