Heim > Web-Frontend > js-Tutorial > Hauptteil

JavaScript-Objekte, Arrays und Hash-Tabellen

高洛峰
Freigeben: 2016-11-28 15:13:33
Original
1750 Leute haben es durchsucht

In JavaScript ist ein Objekt eigentlich eine Hash-Tabelle, wie zum Beispiel das folgende Benutzerobjekt:

function user(n, a)
{
    this.name = n;
    this.age = a;
    this.toString = function() {
        return "Name:" + this.name + ", Age:" + this.age;
    }
}
var u = new user("tom", 18);
for (var k in u) {
    alert('key: ' + k + ', value:' + u[k]);
}
Nach dem Login kopieren

Leichte Änderung, Array-Objekt anstelle von Objekt verwenden:

var user = new Array();
user["name"]="tom";
user["age"]=18;
user["toString"]=function(){
 return "Name:" + this.name + ", Age:" + this.age;
}
alert(user.toString());
Nach dem Login kopieren

Einfacher Schreibweise:

var u = {
 "name":"tom",
 "age":18
}
u.toString = function(){return 'Name:' + this.name + ', Age:' + this.age;};
alert(u.toString());
Nach dem Login kopieren

Wie aus den obigen Codes ersichtlich ist:

Alle JavaScript-Objekte, einschließlich Array-Objekte, sind tatsächlich eine Hash-Tabelle, und der Attributname ist Der Schlüssel von die Hash-Tabelle, und der Wert des Attributs ist der Wert der Hash-Tabelle.

Array-Objekte sind nicht im üblichen Sinne mit Array-Objekten verknüpft, aber Array in JavaScript kann Objekte in der Sammlung wie eine Hash-Tabelle über Schlüssel lokalisieren.

Eine Funktion kann direkt als Wert der „Hash-Tabelle“ des Objekts zugewiesen werden.

In der Front-End-Zeit habe ich Ruan Yifengs Artikel „Datentypen und Json-Format“ gelesen. Es wurde erwähnt, dass bei der Beschreibung von Daten in Yaml alle Daten in drei Typen unterteilt sind:

Die Der erste Typ ist ein Skalar, eine einzelne Zeichenfolge oder Zahl, beispielsweise das einzelne Wort „Beijing“.

Der zweite Typ ist die Reihenfolge mehrerer zusammengehöriger Daten, die auch als Array oder Liste bezeichnet wird, z. B. „Peking, Tokio“.

Der dritte Typ ist eine Karte, ein Schlüssel/Wert-Paar, auch Hash oder Wörterbuch genannt, wie zum Beispiel „Hauptstadt: Peking“.

Vielleicht sind wir alle mit diesen drei Typen vertraut, aber die vier im Artikel erwähnten Regeln für JSON analysieren lediglich die Art und Weise, wie Javascript Daten beschreibt:

Verwenden Sie Kommas zwischen parallelen Daten („,“) getrennt.

Die Zuordnung wird durch einen Doppelpunkt (:“) dargestellt.

Eine Sammlung (Array) paralleler Daten wird durch eckige Klammern („[]“) dargestellt.

Zugeordnete Sammlungen (Objekte) werden durch geschweifte Klammern („{}“) dargestellt.

Mit diesen vier Regeln (plus einem Verständnis der Funktion) können viele scheinbar „seltsame“ Schreibmethoden verstanden werden. Daher ist ein JavaScript-Objekt tatsächlich ein Array oder eine Karte.

Bezüglich des Unterschieds zwischen Arrays und Mappings können Sie sich das folgende Beispiel ansehen:

var m = {
 name:"keel",
 age:5
}
var a = [m,"sss",3];
//以下请求成功定位到name属性
alert(m["name"]);
alert(a[0]["name"]);//a[0]定位到m
alert(a[0].name);
//以下失败
alert(m[0]);//映射无法以数组下标的方式访问
Nach dem Login kopieren

Aus der Perspektive der Methode zum Auffinden von Mitgliedern verwendet das Mapping Schlüssel zum Auffinden von Mitgliedern, während Arrays verwendet werden Verwenden Sie die folgenden Indizes, Zuordnungen können nicht mithilfe von Indizes positioniert werden und Arrays können keine Schlüssel verwenden (natürlich gibt es überhaupt keinen Schlüssel).

Aus Sicht der Darstellungsmethoden kann auf Zuordnungen mit ähnlichen Methoden zugegriffen werden Objekteigenschaften (wie zum Beispiel: m .name), Sie können auch die Methode [] mit Schlüssel verwenden (wie zum Beispiel: m["name"], dies ist ein Sonderfall von JavaScript, es sieht aus wie ein Array, ist es aber tatsächlich eine Zuordnung); aber Arrays können nur Indizes verwenden;

Aus Sicht der Reihenfolge: Arrays sind in Ordnung, Zuordnungen sind ungeordnet;

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!