Alle Variablen in JavaScript sind Objekte, wobei zwei Ausnahmen null und undefiniert sind.
Die Codekopie lautet wie folgt:
false.toString ();
[1, 2, 3] .ToString ();
Funktion foo () {}
Foo.bar = 1;
Foo.bar; // 1
Ein häufiges Missverständnis ist, dass der wörtliche Wert einer Zahl kein Objekt ist. Dies liegt an einem Fehler im JavaScript -Parser, der versucht, den Punktoperator als Teil des numerischen Nennwerts des schwimmenden Punktes zu analysieren.
Die Codekopie lautet wie folgt:
2.ToString ();
Es gibt viele Problemumgehungen, um den wörtlichen Wert einer Zahl wie ein Objekt aussehen zu lassen.
Die Codekopie lautet wie folgt:
2..ToString (); // Der zweite Punkt kann normal analysiert werden
2.ToString ();
(2) .ToString ();
Objekt als Datentyp
JavaScript -Objekte können als Hash -Tabellen verwendet werden und werden hauptsächlich verwendet, um die Korrespondenz zwischen den benannten Schlüssel und Werten zu speichern.
Die Verwendung der wörtlichen Syntax eines Objekts - {} - kann ein einfaches Objekt erstellen. Dieses neu erstellte Objekt erbt von Object.Prototyp unten ohne benutzerdefinierte Eigenschaften.
Die Codekopie lautet wie folgt:
var foo = {}; // ein leeres Objekt
// ein neues Objekt mit einer benutzerdefinierten Eigenschaft "Test" mit einem Wert von 12
var bar = {test: 12};
Zugangseigenschaften
Es gibt zwei Möglichkeiten, auf die Eigenschaften des Objekts zuzugreifen, den Punktbetreiber oder den Klammerbetreiber.
Die Codekopie lautet wie folgt:
var foo = {name: 'kitten'}
foo.name; // Kätzchen
Foo ['Name'];
var get = 'name';
Foo [Get];
Foo.1234;
foo ['1234'];
Die beiden Syntaxe sind äquivalent, aber der Halterungsoperator ist in den folgenden zwei Situationen weiterhin gültig - dynamisch Einstellungseigenschaften - Der Attributname ist kein gültig Schlüsselwörter von JS)
Anmerkung des Übersetzers: Im JSlint -Syntax -Erkennungstool werden Punktbetreiber empfohlen.
Attribute löschen
Die einzige Möglichkeit, eine Eigenschaft zu löschen, besteht darin, den Löschbetreiber zu verwenden.
Die Codekopie lautet wie folgt:
14
var obj = {
Bar: 1,
Foo: 2,
Baz: 3
};
obj.bar = undefiniert;
obj.foo = null;
obj.baz löschen;
für (var i in obj) {
if (obj.hasownProperty (i)) {
console.log (i, '' + obj [i]);
}
}
Die oben genannten Ausgangsergebnisse haben ein undefinierter Balken und Foo Null - nur Baz wird tatsächlich gelöscht, so dass es aus den Ausgabergebnissen verschwindet.
Die Syntax von Attributnamen
Die Codekopie lautet wie folgt:
var test = {
"Fall": "Ich bin ein Schlüsselwort, also muss ich als Zeichenfolge notiert werden"
Löschen: 'Ich bin auch ein Schlüsselwort, also ich' // Fehler: syntaxError
};
Der Attributname eines Objekts kann mit einer Zeichenfolge oder einem normalen Zeichen deklariert werden. Aufgrund einer weiteren Fehlsignation des JavaScript -Parsers wirft die obige zweite Deklarationsmethode jedoch einen SyntaxErrorfehler vor ECMascript 5.
Der Grund für diesen Fehler ist, dass Löschen ein Schlüsselwort in der JavaScript -Sprache ist.