Enthüllung des Geheimnisses hinter dem Rückgabewert von [[]][ []] [ []]
Im Bereich JavaScript Der rätselhafte Ausdruck [[]][ []] [ []] verwirrt viele mit seinem scheinbar unsinnigen Rückgabewert: „10“. Wir tauchen in die Tiefen des JavaScript-Bewertungsprozesses ein und begeben uns auf eine Reise, um dieses Rätsel zu entschlüsseln.
Lassen Sie uns zunächst den Ausdruck aufschlüsseln:
++[[]][+[]] + [+[]]
Erweitern [[]] [ []]
In JavaScript wird der Ausdruck [] als 0 ausgewertet. Dies liegt an Konvertierungsversuchen Der Operand wird in eine Zahl umgewandelt, und ein leeres Array wird in eine Zeichenfolge umgewandelt, die dann in eine Zahl umgewandelt wird, die 0 ergibt.
Wenn wir [] durch das Äquivalent ersetzen, erhalten wir:
++[[]][0] + [+[]]
Auswerten von [[]][0]
Der Operator erhöht seinen Operanden um eins, also [[]][0] entspricht ([[]][0]) 1. Da [[]][0] das erste Element des leeren Arrays abruft, gibt es ein weiteres leeres Array zurück. Somit ist ([[]][0]) äquivalent zu [], von dem wir wissen, dass es 0 ergibt.
Vereinfachung des verbleibenden Ausdrucks
Wenn wir weiter vereinfachen, erhalten wir :
1 + [+[]]
Zwang von JavaScript Magie
Die Zwangsregeln von JavaScript kommen ins Spiel, wenn es um die Addition eines Arrays und einer Zahl geht. Zuerst wird das Array in eine Zeichenfolge („0“) umgewandelt, und dann wird die Zahl in eine Zeichenfolge („1“) umgewandelt. Die Verkettung von Zeichenfolgen führt zum Endergebnis:
console.log("1" + "0") // "10"
Zusätzlicher Kontext
Das obige ist der detaillierte Inhalt vonWarum gibt [[]][ []] [ []] in JavaScript „10' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!