Maison > interface Web > js tutoriel > le corps du texte

Série JavaScript avancée : utilisation et propriétés des objets

黄舟
Libérer: 2017-02-07 17:22:42
original
1142 Les gens l'ont consulté
  • 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
Copier après la connexion

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
Copier après la connexion

Il existe de nombreuses solutions pour faire ressembler les littéraux numériques à des objets.

2..toString(); // 第二个点号可以正常解析
2 .toString(); // 注意点号前面的空格
(2).toString(); // 2先被计
Copier après la connexion

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};
Copier après la connexion

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
Copier après la connexion

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]);
    }
}
Copier après la connexion

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
};
Copier après la connexion


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) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal