Accéder aux propriétés d’un objet
Il existe deux façons d’accéder aux propriétés d’un objet :
- Notation par points
- Notation par crochets
La notation par points est utilisée le plus fréquemment. Ci-dessous, nous allons plonger dans chacune d’elles et découvrir certaines des différences.
Notation par points
Regardons d’abord la notation par points. Considérons l’exemple ci-dessous :
let obj = {
cat: 'meow',
dog: 'woof'
};let sound = obj.cat;console.log(sound);
// meow
Je veux attirer votre attention sur la cinquième ligne où nous utilisons la notation par points : let sound = obj.cat;
. C’est un exemple de notation par points. Vous pouvez accéder aux propriétés d’un objet en spécifiant le nom de l’objet, suivi d’un point, puis du nom de la propriété. Voici la syntaxe : objectName.propertyName;
.
Lorsque vous travaillez avec la notation par points, les identifiants des propriétés ne peuvent être qu’alphanumériques (et
_
et$
). Les propriétés ne peuvent pas commencer par un nombre.
La notation par points est beaucoup plus facile à lire que la notation par crochets et est donc plus souvent utilisée. Cependant, il y a une deuxième façon d’accéder aux propriétés d’un objet que vous devez connaître. Il s’agit de la notation entre crochets.
Notation entre crochets
Voici un exemple de notation entre crochets :
let obj = {
cat: 'meow',
dog: 'woof'
};let sound = obj;console.log(sound);
// meow
Attirez à nouveau votre attention sur la cinquième ligne : let sound = obj;
. Vous pouvez accéder aux propriétés d’un objet en spécifiant le nom de l’objet suivi du nom de la propriété entre parenthèses. Voici la syntaxe : objectName
.
Vous avez probablement vu la notation entre crochets lorsque vous travaillez avec des tableaux. Dans l’exemple ci-dessous, nous allons accéder au deuxième élément de notre arr
en utilisant la syntaxe : arrayName
let arr = ;let letter = arr;console.log(letter);
// b
Mais la notation entre crochets est également utile pour travailler avec des objets.
Lorsque vous travaillez avec la notation entre crochets, les identificateurs de propriété doivent seulement être une chaîne de caractères. Ils peuvent inclure tous les caractères, y compris les espaces. Des variables peuvent également être utilisées tant que la variable se résout en une Chaîne.
Cela signifie qu’il y a moins de limitations lorsqu’on travaille avec la notation entre crochets. Nous pouvons maintenant avoir des espaces dans nos chaînes, et nous pouvons même commencer les chaînes avec des chiffres.
Peut-être le plus important, nous pouvons maintenant utiliser des variables pour accéder aux propriétés d’un objet. Il est important que la variable que vous utilisez fasse référence à une chaîne de caractères.
Jetez un coup d’œil à cet exemple de variable. Il pourrait être un peu confus au début, alors soyez indulgent avec moi :
let obj = {
cat: 'meow',
dog: 'woof'
};let dog = 'cat';
let sound = obj;console.log(sound);
// meow
L’exemple ci-dessus est similaire à un exemple précédent que nous avons déjà vu. La principale différence est que nous utilisons maintenant la notation entre crochets pour passer une variable. Attention, on pourrait croire que nous cherchons la propriété dog
dans notre obj
, mais ce n’est pas tout à fait correct. dog
est une variable dont la valeur est 'cat'
. Puisque nous utilisons des parenthèses, la valeur de la chaîne est passée et nous recherchons la propriété 'cat'
– obj
. Ainsi, meow
est enregistré dans la console.
Au-dessous, nous allons essayer de faire la même chose, mais avec la notation par points:
let obj = {
cat: 'meow',
dog: 'woof'
};let dog = 'cat';
let sound = obj.dog;console.log(sound);
// woof
Dès le départ, vous devriez remarquer que nous obtenons woof
. C’est très différent de l’autre exemple et c’est parce que nous ne pouvons pas utiliser de variables avec la notation par points. Tenter de rechercher obj.dog
va en fait juste chercher la valeur de la chaîne de 'dog'
dans notre objet au lieu d’utiliser la valeur des variables. Ainsi, obj.dog
renvoie woof
.
Recap
Il existe des différences importantes entre la notation par points et la notation par crochets :
Notation par points :
- Les identifiants de propriété ne peuvent être qu’alphanumériques (et
_
et$
) - Les identifiants de propriété ne peuvent pas commencer par un nombre.
- Les identifiants de propriété ne peuvent pas contenir de variables.
- OK –
obj.prop_1
,obj.prop$
- Not OK –
obj.1prop
,obj.prop name
Notation baïonnette:
- Les identificateurs de propriété doivent être une chaîne de caractères ou une variable qui fait référence à une chaîne de caractères.
- Il est acceptable d’utiliser des variables, des espaces et des Chaînes qui commencent par des nombres
- OK –
obj
,obj
Merci d’avoir lu ! Si vous êtes prêt à enfin apprendre le développement Web, consultez Le guide ultime pour apprendre le développement Web Full Stack en 6 mois, pour 30 $. Si vous cherchez simplement à améliorer vos compétences en JavaScript, consultez : A Beginners Guide to Advanced JavaScript
Je publie 4 articles sur le développement web chaque semaine. Pensez à entrer votre email ici si vous souhaitez être ajouté à ma liste d’emails une fois par semaine, ou suivez-moi sur Twitter.