Schlüsselkonzepte:
undefined
, null
, Symbol) und Pass-by-Referenz für zusammengesetzte Typen (Objekte und Arrays). Der Operator typeof
bestimmt die Zuordnungsmethode. kurz: Das Referenzverhalten von JavaScript unterscheidet sich erheblich von Sprachen mit expliziten Zeigern. Nur zusammengesetzte Datenstrukturen werden mit Referenz übergeben.
Terminologie:
Hinweis: Die Skalartypen von JavaScript sind im Gegensatz zu einigen Sprachen (wie Ruby) mit skalaren Referenztypen Primitive. Die primitiven Werte von JavaScript sind unveränderlich, während Verbindungswerte veränderlich sind.
Dieser Artikel wurde ursprünglich auf Medium veröffentlicht.
Zusammenfassung der Schlüsselpunkte:
typeof
bestimmt, ob ein Wert durch Wert oder Referenz zugewiesen wird. Beispiele:
pass-by-value (primitive):
let batman = 7; let superman = batman; //assign-by-value superman++; console.log(batman); //7 console.log(superman); //8
pass-by-referenz (zusammengesetzte Werte):
let flash = [8, 8, 8]; let quicksilver = flash; //assign-by-reference quicksilver.push(0); console.log(flash); //[8, 8, 8, 0] console.log(quicksilver); //[8, 8, 8, 0]
Erstellen neuer Referenzen:
Neuzuweisung eines zusammengesetzten Wertes erzeugt eine neue Referenz:
let firestorm = [3, 6, 3]; let atom = firestorm; //assign-by-reference atom = [9, 0, 9]; //value is reassigned (creates new reference) console.log(firestorm); //[3, 6, 3] console.log(atom); //[9, 0, 9]
Referenzen in Funktionen:
let batman = 7; let superman = batman; //assign-by-value superman++; console.log(batman); //7 console.log(superman); //8
Modifizieren Sie den ursprünglichen Verbindungswert innerhalb einer Funktion:
let flash = [8, 8, 8]; let quicksilver = flash; //assign-by-reference quicksilver.push(0); console.log(flash); //[8, 8, 8, 0] console.log(quicksilver); //[8, 8, 8, 0]
Erstellen einer flachen Kopie:
let firestorm = [3, 6, 3]; let atom = firestorm; //assign-by-reference atom = [9, 0, 9]; //value is reassigned (creates new reference) console.log(firestorm); //[3, 6, 3] console.log(atom); //[9, 0, 9]
Zuweisen von Primitiven durch Referenz (Verwendung von Objekten):
let magneto = [8, 4, 8]; (function(x) { //IIFE x.push(99); x = [1, 4, 1]; //reassign variable (creates new reference) x.push(88); })(magneto); console.log(magneto); //[8, 4, 8, 99]
Schlussfolgerung:
Das Referenzsystem von JavaScript verstehen, ist entscheidend für das Schreiben effizienter und fehlerfreier Code.
(FAQS-Abschnitt für Kürze weggelassen, kann aber basierend auf Bedürfnissen neu angezogen werden.)
Das obige ist der detaillierte Inhalt vonSchneller Tipp: Wie JavaScript -Referenzen funktionieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!