Restrictions sur les clés d'objets en JavaScript
Nous ne pouvons pas écrire sans guillemets toutes les clés d'objets, mais seulement celles qui satisfont aux restrictions suivantes : elles ne peuvent pas commencer par un chiffre et ne peuvent pas contenir de trait d'union, d'espace ou d'autres caractères similaires.
Si une chaîne enfreint cette restriction, alors elle doit être mise entre guillemets. Dans l'exemple suivant, une partie des clés ne satisfait pas aux conditions et est donc mise entre guillemets :
let obj = {'1key': 'a', 'key-2': 'b', key3: 'c'};
On ne peut accéder à ces clés qu'en utilisant les crochets :
console.log(obj['1key']);
console.log(obj['key-2']);
De plus, l'accès à ces noms via la notation pointée de l'objet entraînera une erreur :
console.log(obj.1key);
console.log(obj.key-2);
En revanche, la troisième clé est valide, et nous pouvons y accéder par les deux méthodes :
console.log(obj['key3']);
console.log(obj.key3);
Soit l'objet :
let obj = {
'1a': 1,
'b2': 2,
'c-c': 3,
'd 4': 4,
'e5': 5
};
Pour quelles clés de cet objet les guillemets sont-ils obligatoires, et pour lesquelles ne le sont-ils pas ?
Corrigez les erreurs commises dans le code suivant :
let obj = {
'1a': 1,
'b2': 2,
'c-c': 3,
'd 4': 4,
'e5': 5
};
console.log(obj.1a);
console.log(obj.b2);
console.log(obj.c-c);
console.log(obj.d 4);
console.log(obj.e5);