Objet comme type de données
Accès aux propriétés
Suppression de propriétés
Syntaxe des noms d'attributs
Utilisation et attributs des objets
Toutes les variables en JavaScript peuvent être utilisées comme objets, à deux exceptions près, null et indéfini.
false.toString(); // 'false' [1, 2, 3].toString(); // '1,2,3' function Foo(){} Foo.bar = 1; Foo.bar; // 1
Un malentendu courant est que les littéraux numériques ne peuvent pas être utilisés comme objets. Cela est dû à un bug dans l'analyseur JavaScript, qui tente d'analyser les opérateurs point dans le cadre d'une valeur littérale à virgule flottante.
2.toString(); // 出错:SyntaxError
Il existe de nombreuses solutions pour faire ressembler les littéraux numériques à des objets.
2..toString(); // 第二个点号可以正常解析 2 .toString(); // 注意点号前面的空格 (2).toString(); // 2先被计
Objets en tant que types de données
Les objets JavaScript peuvent être utilisés comme tables de hachage, principalement utilisées pour enregistrer la correspondance entre les clés nommées et les valeurs.
Un objet simple peut être créé en utilisant la syntaxe littérale d'objet - {} -. Cet objet nouvellement créé hérite d'Object.prototype et n'a aucune propriété personnalisée.
var foo = {}; // 一个空对象 // 一个新对象,拥有一个值为12的自定义属性'test' var bar = {test: 12};
Accès aux propriétés
Il existe deux manières d'accéder aux propriétés d'un objet, l'opérateur point ou l'opérateur crochet.
var foo = {name: 'kitten'} foo.name; // kitten foo['name']; // kitten var get = 'name'; foo[get]; // kitten foo.1234; // SyntaxError foo['1234']; // works
Les deux syntaxes sont équivalentes, mais l'opérateur crochet est toujours valable dans les deux situations suivantes
Paramétrage dynamique des attributs
Le nom de l'attribut n'est pas un nom de variable valide (Note du traducteur : par exemple, le nom de l'attribut contient des espaces, ou le nom de l'attribut est un mot-clé JS)
Supprimer l'attribut
La seule façon de supprimer une propriété est d'utiliser l'opérateur delete ; définir une propriété sur undefined ou null ne supprime pas réellement la propriété, mais supprime uniquement l'association entre la propriété et la valeur.
var obj = { bar: 1, foo: 2, baz: 3 }; obj.bar = undefined; obj.foo = null; delete obj.baz; for(var i in obj) { if (obj.hasOwnProperty(i)) { console.log(i, '' + obj[i]); } }
La sortie ci-dessus a bar undefined et foo null - seul baz est réellement supprimé, il disparaît donc de la sortie.
Syntaxe des noms d'attributs
var test = { 'case': 'I am a keyword so I must be notated as a string', delete: 'I am a keyword too so me' // 出错:SyntaxError };
Les noms d'attributs des objets peuvent être déclarés à l'aide de chaînes ou de caractères ordinaires. Cependant, en raison d'une autre conception incorrecte de l'analyseur JavaScript, la deuxième méthode de déclaration ci-dessus lèvera une SyntaxError avant ECMAScript 5.
La raison de cette erreur est que delete est un mot-clé dans le langage JavaScript ; par conséquent, afin de fonctionner normalement sous les versions inférieures des moteurs JavaScript, une déclaration littérale de chaîne doit être utilisée.
Ce qui précède est la série JavaScript avancée - utilisation et attributs des objets. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !