Aprenda quando usar notação de ponto e parêntesis no JavaScript.
Possibilitamos o acesso à propriedade de um objeto por
- Notação de pontos
- Notação de fendas
Esta é a forma mais popular e mais usada de acessar a propriedade de um objeto. Isto torna o código mais legível. A notação Dot é usada com mais frequência.
Syntax: obj.property_name
var user = {name : "Mark"};user.name ; // "Mark"
Quando não usar dot
Notação
Considerando que estamos tendo um nome de propriedade como 123
var obj = {
'123' : 123
};
No caso acima se não podemos acessar usando
obj.123;
Então, se o nome da propriedade não é válido identifier
, então não podemos acessar seu valor usando a notação .
.
O que é um identificador?
Um identificador é uma sequência de caracteres no código que identifica um
variable
,function
, ouproperty
. Geralmente nome da função ou variável ou nome de propriedade do objeto
O que é um identificador válido?
Neste caso, podemos usar notação de parênteses
var obj = {
'123' : 123
};obj; // 123
Nota
Em JavaScript $
, e _
são identificadores válidos. para que possamos acessar essas propriedades usando a notação .
.
var obj = {
$ : 10,
_ : 20
}obj.$; // 10obj._; // 20
Bracket Notation
A notação de parênteses é usada quando o nome da propriedade é um identificador inválido(começa com um número, contém símbolos).
var obj = {
test-123 : "test"
}// in this case we cannot use dot notationobj; // "test"
Se o nome da propriedade é number
então não precisamos envolver o nome da propriedade dentro de single /double quotes
na criação do objeto. Mas na notação entre parênteses, se o nome da propriedade for whole number
, então não precisamos de embrulhar o nome dentro de single /double quotes
. Mas se o nome da propriedade for double
, então precisamos embrulhar o nome da propriedade dentro de single /double quotes
.
Exemplo 1: número inteiro
var obj = {
123456 : 10
}obj;
Exemplo 2: Duplo
var obj = {
123.456 : 10
}obj; // undefinedobj; // 10
Examplo 3: Usando um número inválido
var obj = {
123.123.123 : 10 // throws invalid number error
}For this case use single/double quotesvar obj = {
'123.123.123' : 10
}
Examplo 4: Usando símbolos especiais
var obj = {
'123-test' : "test"
}obj; // error(test is not defined)obj; // "test"
Usando variável como nome da propriedade
Examplo 1:
var test = "test";var obj = {
test : "Test success"
}obj // "Test success"
Examplo 2:
var obj = {
name : "Mark"
age : 20
}var name = "age";obj; // Mark
obj; // 20
Examplo 3: Exemplo real de usar notação de parênteses
Também podemos usar objeto como nome da propriedade, mas isso será convertido em
var a = {};var b = {};var c = {};c = 10;c ; {: 10}c = 20; // this will replace old c; {: 20}
Também podemos ter empty string
como nome da propriedade
var obj= {};var emptyString = "";obj = "10";obj; // 10