Heim  >  Artikel  >  Web-Frontend  >  Warum gibt [[]][ []] [ []] in JavaScript „10“ zurück?

Warum gibt [[]][ []] [ []] in JavaScript „10“ zurück?

Barbara Streisand
Barbara StreisandOriginal
2024-11-17 15:09:02826Durchsuche

Why does   [[]][ []] [ []] return

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

  • Der Ausdruck [[]] kann als kurze Möglichkeit verstanden werden, eine zu erzwingen Array zu einer Zahl (0).
  • Die []-Operation ist in der JavaScript-Spezifikation nicht explizit definiert, aber sie ist das Ergebnis einer Reihe von Zwangsschritte.
  • Die Zwangsregeln von JavaScript können in bestimmten Szenarien zu unerwartetem Verhalten führen, bieten aber Flexibilität beim Konvertieren von Werten in verschiedene Typen.

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!

Stellungnahme:
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