Heim  >  Artikel  >  Web-Frontend  >  Javascript-Studiennotizen – Objekte (1): Verwendung und Eigenschaften von Objekten_Grundkenntnisse

Javascript-Studiennotizen – Objekte (1): Verwendung und Eigenschaften von Objekten_Grundkenntnisse

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

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

Eine oft missverstandene Sache ist, dass numerische Konstanten nicht als Objekte betrachtet werden können. Tatsächlich können numerische Konstanten immer noch als Objekte betrachtet werden. Dies liegt daran, dass der Javascript-Parser beim Parsen des Punktoperators einen Fehler macht und ihn als Gleitkommamerkmal behandelt.

2.toString(); // löst SyntaxError aus

Tatsächlich haben wir viele Möglichkeiten, eine numerische Konstante dazu zu bringen, sich wie ein Objekt zu verhalten.

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

Objekt als Datentyp

Objekte in Javascript können als Hash-Tabellen verwendet werden, die hauptsächlich die Entsprechung zwischen Schlüsseln und Werten enthalten.
Verwenden Sie das Symbol {}, um ein einfaches Objekt zu erstellen. Dieses neue Objekt erbt von Object.prototype und enthält keine eigenen Eigenschaften.

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

Zugriff auf die Eigenschaften eines Objekts

Wir können auf zwei Arten auf Javascript-Objekte zugreifen, nämlich den Punktoperator und den eckigen Klammeroperator [] .

var foo = {name: 'kitten'}
foo.name; // kitten
foo['name']; // kitten

var get = 'name';
foo[get]; // kitten

foo.1234; // SyntaxError
foo['1234']; // works

Die Auswirkungen der beiden Operatoren sind nahezu gleich. Der einzige Unterschied besteht darin, dass der Klammeroperator das dynamische Setzen von Attributen ermöglicht und der Attributname Syntaxfehler aufweisen kann. (Die dritte Situation im obigen Beispiel wurde erklärt)

Attribute eines Objekts löschen

Die einzige Möglichkeit, ein Attribut zu löschen, besteht darin, „delete“ zu verwenden. Wenn Sie den Attributwert auf „undefiniert“ oder „null“ setzen, wird nur der mit dem Attribut verknüpfte Wert entfernt, nicht jedoch das Attribut selbst.

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]);
 }
}

Die obigen Ausgaben bar undefiniert und foo null, nur baz wird tatsächlich gelöscht.
Hierbei ist zu beachten, dass mit delete nur Attribute und keine Variablen gelöscht werden können. Daher müssen wir uns beim Definieren von Variablen angewöhnen, Variablen zu schreiben. Variablen müssen jederzeit mit dem Schlüsselwort var deklariert werden. Denn wenn Sie var nicht schreiben, wird die Variable fälschlicherweise als neues Attribut erkannt, das für das globale Objekt erstellt wurde.

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': 'I am a keyword, so I must be notated as a string',
 delete: 'I am a keyword, so me too' // raises SyntaxError
};

Objekteigenschaften können mit gewöhnlichen Zeichen oder Zeichenfolgen benannt werden. Aufgrund eines Fehlers im Design des Javascript-Parsers führt die zweite Darstellung im obigen Beispiel ebenfalls zu einem Fehler in ECMAScript 5.
Der Grund für den Fehler liegt darin, dass „delete“ ein Schlüsselwort ist und daher zur Anpassung an die alte Version des Javascript-Parsers mit einer String-Konstante benannt werden muss.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn