Heim > Web-Frontend > js-Tutorial > Warum gibt [[]][ []] [ []] in JavaScript „10' zurück?

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

Barbara Streisand
Freigeben: 2024-11-17 15:09:02
Original
886 Leute haben es durchsucht

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:

++[[]][+[]]
+
[+[]]
Nach dem Login kopieren

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]
+
[+[]]
Nach dem Login kopieren

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
+
[+[]]
Nach dem Login kopieren

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"
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage