Toutes les variables en JavaScript sont des objets, à deux exceptions près : null et non défini.
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.
2.toString( // Erreur); : Erreur de syntaxe
Il existe de nombreuses solutions de contournement pour faire ressembler les littéraux numériques à des objets.
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.
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.
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
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.