false.toString (); // 'false' [1, 2, 3] .ToString (); // '1,2,3'Function foo () {} foo.bar = 1; foo.bar; // 1Eine Sache, die oft missverstanden wird, ist, dass numerische Konstanten nicht als Objekte angesehen werden können, aber tatsächlich können numerische Konstanten immer noch als Objekte angesehen werden. Dies liegt daran, dass der JavaScript -Parser einen Fehler macht, wenn er Punktoperatoren analysiert und als schwimmende Punktfunktionen behandelt.
2.ToString (); // Erhöht SyntaxError
Tatsächlich haben wir viele Möglichkeiten, eine numerische Konstante als Objekt zu verhalten.
2..tostring (); // Der zweite Punkt ist korrekt erkannt2 .ToString (); // Beachten Sie den Platz, der dem Punkt (2) .ToString () zurückgelassen wird; // 2 wird zuerst bewertet
Objekt als Datentyp
Objekte in JavaScript können als Hash -Tabellen verwendet werden und enthalten hauptsächlich die entsprechende Beziehung zwischen Schlüssel und Werten.
Verwenden Sie das Symbol {}, um ein einfaches Objekt zu erstellen. Dieses neu erstellte Objekt wird von Object.Prototype erben und enthält keine Eigenschaften, die es selbst definiert.
var foo = {}; // ein neues leeres Objekt // Ein neues Objekt mit einer 'Test' Eigenschaft mit Wert 12var bar = {test: 12};Zugriff auf die Eigenschaften des Objekts
Wir können zwei Möglichkeiten nutzen, um auf JavaScript -Objekte zuzugreifen, nämlich den Punktoperator. und der Klammeroperator [].
var foo = {name: 'kitten'} foo.name; // Kittenfoo ['Name']; // Kittenvar get = 'name'; foo [get]; // Kittenfoo.1234; // syntaxErrorfoo ['1234']; // funktioniertDie Auswirkungen der beiden Operatoren sind fast gleich. Der einzige Unterschied besteht darin, dass der Bracket -Operator dynamische Einstellungen von Eigenschaften ermöglicht und die Attributnamen Syntaxfehler haben können. (Der dritte Fall im obigen Beispiel wurde erklärt)
Löschen Sie die Eigenschaften des Objekts
Die einzige Möglichkeit, eine Eigenschaft zu löschen, besteht darin, das Löschen zu verwenden, und die Einstellung des Eigenschaftswerts auf undefinierte oder null einfach den mit der Eigenschaft verbundenen Wert zu entfernen und die Eigenschaft selbst nicht wirklich zu löschen.
var obj = {bar: 1, foo: 2, baz: 3}; obj.bar = undefiniert; obj.foo = null; löschen obj.baz; für (var i in obj) {if (obj.hasownProperty (i)) {console.log (i, '' + obj [i]); }}Die obige Ausgangsleiste undefinierte und Foo Null, nur Baz wird tatsächlich gelöscht.
Hier sollte erklärt werden, dass Löschen nur Attribute löschen kann, nicht Variablen. Bei der Definition von Variablen müssen wir daher die gute Angewohnheit entwickeln, var zu schreiben. Variablen müssen jederzeit mithilfe des VAR -Schlüsselworts deklariert werden. Denn wenn Sie nicht var schreiben, wird die Variable mit dem globalen Objekt verwechselt und erstellt eine neue Eigenschaft.
Dieses Beispiel gibt die Antwort ganz klar, A ist eine Variable und B ist nur eine Eigenschaft eines globalen Objekts.
Eigenschaften benannter Objekte
var test = {'case': 'Ich bin ein Schlüsselwort, also muss ich als Zeichenfolge notiert werden.Die Eigenschaften eines Objekts können mit normalen Zeichen oder Zeichenfolgen benannt werden. Auch aufgrund eines falschen Designs des JavaScript -Parsers wird die zweite Darstellungsmethode im obigen Beispiel einen Fehler in ECMascript 5 wirft.
Der Grund für den Fehler ist, dass Löschen ein Schlüsselwort ist, daher muss eine String -Konstante benannt werden, um sich an die alte Version von JavaScript Parser anzupassen.