Maison  >  Article  >  interface Web  >  Explication détaillée d'exemples d'utilisation d'objets JavaScript et d'opérations d'attributs_Connaissances de base

Explication détaillée d'exemples d'utilisation d'objets JavaScript et d'opérations d'attributs_Connaissances de base

WBOY
WBOYoriginal
2016-05-16 16:57:41949parcourir

Toutes les variables en JavaScript sont des objets, à deux exceptions près : null et non défini.

Copier le code Le code est le suivant :

false.toString(); false'
[1, 2, 3].toString(); // '1,2,3'

function Foo(){}
Foo.bar = 1;
Foo.bar ; // 1

Une idée fausse courante est que les nombres littéraux ne sont pas des 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.

Copier le code Le code est le suivant :

2.toString( // Erreur); : Erreur de syntaxe

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

Copier le code Le code est le suivant :

2..toString( //); deuxième Le signe point peut être analysé normalement
2 .toString(); // Faites attention à l'espace avant le signe point
(2).toString(); // 2 est calculé en premier
 

Objet comme type de données

Les objets JavaScript peuvent être utilisés comme tables de hachage, principalement utilisées pour sauvegarder 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.

Copier le code Le code est le suivant :

var foo = {} ; objet vide

// Un nouvel objet avec un attribut personnalisé 'test' avec une valeur de 12
var bar = {test: 12};
Accéder 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.

Copier le code Le code est le suivant :var foo = {name: 'kitten' >
foo.name; // chaton
foo['name']; // chaton

var get = 'name';
foo[get]; >
foo.1234; // SyntaxError
foo['1234']; // works


Les deux syntaxes sont équivalentes, mais l'opérateur crochet fonctionne toujours dans les deux suivants cas Valide - attributs définis dynamiquement - 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)

Note du traducteur : dans l'outil de détection de syntaxe JSLint, l'opérateur point est une pratique recommandée.

Supprimer les attributs

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.

Copier le code

bar : 1,
foo : 2,
baz : 3
};
obj.bar = undefined;
obj.foo = null;
supprimer 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

Copier le code

Le code est le suivant :var test = {'case ': 'Je suis un mot-clé donc je dois être noté sous forme de chaîne',
delete : 'Je suis un mot-clé aussi donc moi' // Erreur : SyntaxError
};




Le nom d'attribut d'un objet peut être déclaré à 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, pour fonctionner normalement sous les versions inférieures des moteurs JavaScript, une déclaration littérale de chaîne doit être utilisée.

Déclaration:
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