Verzeichnisausdrücke in JavaScript (Verzeichnisausdrücke in JavaScript), Lektion, Seite 723578
https://www.purl.org/stefan_ram/pub/verzeichnisausdruck_javascript (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
JavaScript-Kurs

Verzeichnisausdrücke in JavaScript 

Wir haben schon vordefinierte  Verzeichnisse wie das Verzeichnis »this.Math« oder das globale Verzeichnis »this« kennengelernt.

Der Ausdruck »( {} )« steht in JavaScript  für ein leeres Verzeichnis. Eigentlich steht schon der Ausdruck »{}« alleine für ein leeres Verzeichnis, doch wird eine Eingabe, die mit einer geschweiften Klammer auf »{« beginnt, von JavaScript  manchmal auch noch als etwas anderes interpretiert. Um sicherzustellen, daß das Paar geschweifter Klammern als ein Verzeichnis »{}« interpretiert wird, muß diese Schreibweise an einer Stelle stehen, an der nur ein Ausdruck stehen darf, wie beispielsweise in runden Klammern »(« »)«.

Das folgende Beispiel zeigt den Wert des Eintrags »a« im Verzeichnis »( {} )«.

Auswertung
( {} ).a
undefined

Da das Verzeichnis »( {} )« leer  ist, ist der Wert des Eintrags »a« undefiniert.

Die Schreibweise »a: "b"« in den geschweiften Klammern eines Verzeichnisausdrucks besagt, daß der Schlüssel »a« den Wert »"b"« haben soll.

Auswertung
( { a: "b" } ).a
"b"

Ein anderes Beispiel zeigt die Verwendung mit einer Zahl.

Auswertung
( { i: 17 } ).i
17

Ein berechneter Name wird durch einen Ausdruck in eckigen Klammern angegeben, der eine Zeichenfolge ergibt.

Durch ein Komma getrennt können mehrere Einträge festgelegt werden.

Auswertung
( { i: 17, a: "b" } ).i
17
Auswertung
( { i: 17, a: "b" } ).a
"b"
Auswertung
( { i: 17, a: "b" } )[ "i" ]
17

Ein Schlüssel muß ein Bezeichner, ein Zeichenfolgenliteral, ein numerisches Literal oder ein berechneter Name sein.

Auswertung
( { a: 17, "b": 20, 2: 14, 2.5: 12, [ "a" + "b" ]: 7 } ).a
17
Auswertung
( { a: 17, "b": 20, 2: 14, 2.5: 12, [ "a" + "b" ]: 7 } ).b
20
Auswertung
( { a: 17, "b": 20, 2: 14, 2.5: 12, [ "a" + "b" ]: 7 } )[ 2 ]
14
Auswertung
( { a: 17, "b": 20, 2: 14, 2.5: 12, [ "a" + "b" ]: 7 } ).ab
7

Zwei Verzeichnisse, die duch zwei Auswertungen  eines Verzeichnisausdrucks entstehen, gelten immer als ungleich, selbst wenn die beiden ausgewerteten Ausdrücke gleich sind.

Auswertung
( {} )===( {} )
false

Man erkennt verschiedene Parallelen zu den zuvor behandelten Funktionen: in beiden Fällen kann man einen Wert in einen komplizierteren Behälter einpacken und dann später wieder daraus entnehmen.

Zwei Ausdrücke, die beide ein Verzeichnis angeben, gelten nur dann als gleich (»===«), wenn beide das gleiche Verzeichnis angeben (in dem Sinne, daß eine Änderung des Verzeichnisses über den einen Ausdruck auch über den anderen Ausdruck erkennbar wird).

Objektliterale in Pfeilfunktionen

In »const cons =( car, cdr )=>( { car: car, cdr: cdr })« muß das Objektliteral eingeklammert werden, da es sonst als Verbundanweisung interpretiert wird.

»"use strict";«

Im strengen Modus von ECMAScript 5 wurden doppelte Schlüssel als Fehler erkannt. Seit ECMAScript 6 sind doppelte Schlüssel in einem Objektliteral aber kein Fehler mehr.

Übungsfragen

?   Übungsfragen

Können Sie die Werte der folgenden Ausdrücke vorhersagen?

Ausdruck
( { a: 2 } )===( { a: 2 } )
Ausdruck
( { a: 2 } ).a
Ausdruck
( { a: 2 } ).b
Ausdruck
( { a: 2 } )[ "a" ]
Ausdruck
( { a: 2, b: 3 } ).a
Ausdruck
( { a: 2, b: 3 } ).b
Ausdruck
( { a: 2, b: 3 } )[ "a" ]
Ausdruck
( { a: 2, b: 3 } )[ "b" ]
Ausdruck
( ( x )=>( { a: 2, b: 4 }[ x ] ))( "a" )
Ausdruck
( ( x )=>( { a: x, b: 4 }.a ))( 2 )

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723578 stefan_ram:723578 Verzeichnisausdrücke in JavaScript Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723578, slrprddef723578, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/verzeichnisausdruck_javascript