Toutes les variables dans JavaScript sont des objets, à deux exceptions nuls et non définies.
La copie de code est la suivante:
false.toString ();
[1, 2, 3] .toString ();
fonction foo () {}
Foo.bar = 1;
Foo.bar; // 1
Une idée fausse commune est que la valeur littérale d'un nombre n'est pas un objet. Cela est dû à un bug dans l'analyseur JavaScript qui essaie d'analyser l'opérateur de points dans le cadre de la valeur nominale numérique du point flottant.
La copie de code est la suivante:
2.ToString ();
Il existe de nombreuses solutions de contournement pour que la valeur littérale d'un nombre ressemble à un objet.
La copie de code est la suivante:
2..ToString ();
2.ToString ();
(2) .toString ();
Objet comme type de données
Les objets JavaScript peuvent être utilisés comme tables de hachage et sont principalement utilisés pour enregistrer la correspondance entre les touches et les valeurs nommées.
L'utilisation de la syntaxe littérale d'un objet - {} - peut créer un objet simple. Cet objet nouvellement créé hérite de Object.Protype ci-dessous, sans aucune propriété personnalisée.
La copie de code est la suivante:
var foo = {};
// un nouvel objet avec un «test» de propriété personnalisé avec une valeur de 12
var bar = {test: 12};
Propriétés d'accès
Il existe deux façons d'accéder aux propriétés de l'objet, à l'opérateur de points ou à l'opérateur de support.
La copie de code est la suivante:
var foo = {name: 'kitten'}
foo.name; // chaton
foo ['nom'];
var get = 'name';
foo [get]; // kitten
foo.1234;
foo ['1234'];
Les deux syntaxes sont équivalentes, mais l'opérateur du support est toujours valide dans les deux situations suivantes - Propriétés de définition dynamique - Le nom d'attribut n'est pas un nom de variable valide (Remarque du traducteur: Par exemple, le nom d'attribut contient des espaces, ou le nom d'attribut est Mots-clés de JS)
Note du traducteur: Dans l'outil de détection de syntaxe JSLINT, les opérateurs de points sont recommandés.
Supprimer les attributs
La seule façon de supprimer une propriété est d'utiliser l'opérateur de suppression;
La copie de code est la suivante:
14
var obj = {
Bar: 1,
foo: 2,
Baz: 3
};
obj.bar = non défini;
obj.foo = null;
supprimer obj.baz;
pour (var i dans obj) {
if (obj.hasownproperty (i)) {
console.log (i, '' + obj [i]);
}
}
Les résultats de sortie ci-dessus ont une barre non définie et FOO NULL - seul le baz est réellement supprimé, donc il disparaît des résultats de sortie.
La syntaxe des noms d'attribut
La copie de code est la suivante:
var test = {
«Case»: «Je suis un mot-clé donc je dois être noté en tant que chaîne»,
Supprimer: «Je suis un mot clé aussi donc moi» // Erreur: syntaxerror
};
Le nom d'attribut d'un objet peut être déclaré en utilisant une chaîne ou un caractère normal. Cependant, en raison d'une autre erreur de l'analyse JavaScript, la deuxième méthode de déclaration ci-dessus lancera une erreur de syntaxerror avant ECMAScript 5.
La raison de cette erreur est que la suppression est un mot-clé dans la langue JavaScript; donc, afin de s'exécuter normalement sous la version inférieure du moteur JavaScript, les littéraux de chaîne doivent être déclarés en utilisant la valeur littérale de la chaîne.