Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
JavaScript Was ist das für eine Syntax?
- Ersteller Hendoul
- Erstellt am
Hi,
das ist in etwas das gleiche wie:
Der Selektiert gleich den Key "a" und setzt es auf die Variable "a".
Gleiches gibts auch für Arrays:
das ist in etwas das gleiche wie:
Javascript:
const result = doFoo();
const a = result.a;
const b = result.b;
Der Selektiert gleich den Key "a" und setzt es auf die Variable "a".
Gleiches gibts auch für Arrays:
Javascript:
const [a, b] = doFoo();
// gleiche wie:
const result = doFoo();
const a = result[0];
const b = result[1];
Zuletzt bearbeitet:
- Registriert
- Aug. 2011
- Beiträge
- 13.213
Skaro schrieb:Der Selektiert gleich den Key "a" und setzt es auf die Variable "a".
Das erklärt was es macht, aber nennt sich dieses JS-Konstrukt? Und mit welcher ECMA-Version kam das rein?
Das hier, oder nicht? "Property Shorthand"
http://es6-features.org/#PropertyShorthand
http://es6-features.org/#PropertyShorthand
H
hroessler
Gast
Javascript:
const {a, b}
greetz
hroessler
- Registriert
- Aug. 2011
- Beiträge
- 13.213
abcddcba schrieb:Das hier, oder nicht?
Hmmm... eher nicht, denn in den Beispielen von Dir verlinkt wird ja x und y zuvor deklariert.
NullPointer
Lt. Commander
- Registriert
- Okt. 2009
- Beiträge
- 1.570
Das ist ein Destructuring Assignment: http://es6-features.org/#ObjectMatchingShorthandNotation.
- Registriert
- Aug. 2011
- Beiträge
- 13.213
NullPointer schrieb:Das ist ein Destructuring Assignment
Wieder was gelernt, danke. Und typisch JavaScript
NullPointer
Lt. Commander
- Registriert
- Okt. 2009
- Beiträge
- 1.570
Ja, genau. Zum Beispiel:
Und "typisch JavaScript" ist das nur begrenzt: Funktionale Programmiersprachen wie Lisp, Haskell oder OCaml/F# können das (und noch mehr) schon seit Jahrzehnten. JavaScript bringt das jetzt nur in den Mainstream
Javascript:
const foo = { a: 1, b: 2 };
const { a, b } = foo;
console.log(`a = ${a}, b = ${b}`);
// Ausgabe: a = 1, b = 2
Und "typisch JavaScript" ist das nur begrenzt: Funktionale Programmiersprachen wie Lisp, Haskell oder OCaml/F# können das (und noch mehr) schon seit Jahrzehnten. JavaScript bringt das jetzt nur in den Mainstream
Korialstrasz
Ensign
- Registriert
- Mai 2010
- Beiträge
- 244
Heyho,
dieses Konstrukt nennt sich "Destructing" und ist für Objekte und Arrays möglich.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
dieses Konstrukt nennt sich "Destructing" und ist für Objekte und Arrays möglich.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
In der freien Wildbahn findet man es vor allem in React:
Daten leben dort in State oder Props und für die Verwendung möchte man nicht immer "this.state" oder "this.props" verwenden, durch das Destructuring kann man die Properties dann wie oben mit a, b, c, x, y, z nutzen.
Ebenso findet man es in API-Calls, die bspw. JSON returnieren.
Hier holt man sich die Property "messages" aus dem Promise, anstatt direkt in der Function mit ".messages".
Darüber hinaus kann man Objekte damit aufteilen:
Das ist ein Destructuring mit Rest Parameter.
Wir haben nun "userWithoutPassword" ohne die Property "password".
Hilfreich, wenn man eine Property entfernen möchte.
Javascript:
const { a, b, c} = this.state;
const { x, y, z } = this.props;
Daten leben dort in State oder Props und für die Verwendung möchte man nicht immer "this.state" oder "this.props" verwenden, durch das Destructuring kann man die Properties dann wie oben mit a, b, c, x, y, z nutzen.
Ebenso findet man es in API-Calls, die bspw. JSON returnieren.
Javascript:
const { messages } = await fetchFromApi();
Hier holt man sich die Property "messages" aus dem Promise, anstatt direkt in der Function mit ".messages".
Darüber hinaus kann man Objekte damit aufteilen:
Javascript:
const { password, ...userWithoutPassword} = user;
Das ist ein Destructuring mit Rest Parameter.
Wir haben nun "userWithoutPassword" ohne die Property "password".
Hilfreich, wenn man eine Property entfernen möchte.
new Account()
Banned
- Registriert
- Mai 2018
- Beiträge
- 7.198
Sogar C++ kann das (etwas weniger versatil): https://en.cppreference.com/w/cpp/language/structured_bindingFaust2011 schrieb:Wieder was gelernt, danke. Und typisch JavaScript![]()
Ähnliche Themen
- Antworten
- 7
- Aufrufe
- 341
- Antworten
- 4
- Aufrufe
- 669
- Antworten
- 14
- Aufrufe
- 1.170
- Antworten
- 7
- Aufrufe
- 820