Maison  >  Article  >  interface Web  >  Notes d'étude Javascript - Objets (1) : utilisation et propriétés des objets_Connaissances de base

Notes d'étude Javascript - Objets (1) : utilisation et propriétés des objets_Connaissances de base

WBOY
WBOYoriginal
2016-05-16 16:43:111275parcourir
false.toString(); // 'false'
[1, 2, 3].toString(); // '1,2,3'

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

Une chose souvent mal comprise est que les constantes numériques ne peuvent pas être considérées comme des objets. En fait, les constantes numériques peuvent toujours être considérées comme des objets. En effet, l'analyseur Javascript fait une erreur lors de l'analyse de l'opérateur point, en le traitant comme une caractéristique à virgule flottante.

2.toString(); // déclenche SyntaxError

En fait, nous avons de nombreuses façons de faire en sorte qu'une constante numérique se comporte comme un objet.

2..toString(); // the second point is correctly recognized
2 .toString(); // note the space left to the dot
(2).toString(); // 2 is evaluated first

Objet comme type de données

Les objets en Javascript peuvent être utilisés comme tables de hachage, qui contiennent principalement la correspondance entre les clés et les valeurs.
Utilisez le symbole {} pour créer un objet simple. Ce nouvel objet héritera de Object.prototype et ne contiendra pas ses propres propriétés.

var foo = {}; // a new empty object
// a new object with a 'test' property with value 12
var bar = {test: 12}; 

Accéder aux propriétés d'un objet

Nous pouvons utiliser deux manières d'accéder aux objets Javascript, à savoir l'opérateur point et 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 effets des deux opérateurs sont presque les mêmes. La seule différence est que l'opérateur crochet permet le réglage dynamique des attributs et que le nom de l'attribut peut contenir des erreurs de syntaxe. (La troisième situation dans l'exemple ci-dessus a été expliquée)

Supprimer les attributs d'un objet

La seule façon de supprimer un attribut est d'utiliser delete. Définir la valeur de l'attribut sur undefined ou null supprime uniquement la valeur associée à l'attribut, et ne supprime pas réellement l'attribut lui-même.

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 barre de sorties ci-dessus est indéfinie et foo null, seul baz est réellement supprimé.
Une chose à noter ici est que delete ne peut supprimer que des attributs, pas des variables. Par conséquent, nous devons développer une bonne habitude d'écrire var lors de la définition des variables. À tout moment, les variables doivent être déclarées à l'aide du mot-clé var. Parce que si vous n'écrivez pas var, la variable sera reconnue par erreur comme un nouvel attribut créé pour l'objet global.

Cet exemple donne la réponse assez clairement, a est une variable et b est juste une propriété d'un objet global.

Propriétés des objets nommés

var test = {
 'case': 'I am a keyword, so I must be notated as a string',
 delete: 'I am a keyword, so me too' // raises SyntaxError
};

Les propriétés des objets peuvent être nommées à l'aide de caractères ou de chaînes ordinaires. Également en raison d'un bug dans la conception de l'analyseur Javascript, la deuxième représentation de l'exemple ci-dessus générera une erreur dans ECMAScript 5.
La raison de l'erreur est que, comme delete est un mot-clé, il doit être nommé à l'aide d'une constante de chaîne pour s'adapter à l'ancienne version de l'analyseur Javascript.

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