Heim > Web-Frontend > js-Tutorial > Hauptteil

Warum gibt „console.log\\`1' ein Array in JavaScript zurück?

Mary-Kate Olsen
Freigeben: 2024-11-23 06:24:18
Original
617 Leute haben es durchsucht

Why Does `console.log\`1`` Return an Array in JavaScript?

Backticks und Funktionsaufrufe in JavaScript

Bei der Verwendung von Backticks () zum Umschließen eines Zeichenfolgenliterals in JavaScript kann es zu unerwartetem Verhalten kommen, z Eine getaggte Vorlage wird aufgerufen. In diesem Fall führte console.log1 zur Ausgabe „console.log1`nVM12380:2 [„1“, raw: Array[1]]“.

Tagged Templates in ES6

Die Erklärung liegt im Konzept der getaggten Vorlagen, die in ES6 eingeführt wurden. Mit getaggten Vorlagen können Sie eine Vorlagenzeichenfolge mit einer Funktion kennzeichnen. Wenn die Zeichenfolge mit der Funktion verwendet wird, empfängt die Funktion die analysierten Werte der Vorlagenzeichenfolge und die Werte in der Zeichenfolge.

Funktion als Tag

In der Beispiel: console.log wird als Tag-Funktion verwendet. Der Aufruf erfolgt effektiv mit den geparsten String-Werten und dem Literal-String-Wert als Array. Die Funktion kann diese Werte dann manipulieren und eine neue Zeichenfolge zurückgeben oder sie zur weiteren Verarbeitung weitergeben.

Zurückgegebenes Array

Die Funktion console.log führt keine besonderen Aktionen aus Verarbeitung der Werte, sodass das Array zurückgegeben wird, das den Literalzeichenfolgenwert enthält. Dieses Array wird dann von console.log ausgedruckt, was zu der von Ihnen beobachteten Ausgabe führt.

Transpilation und Template-Literale

Bei Verwendung moderner JavaScript-Funktionen wie Template-Literale mit älteren Browser, Babel oder ähnliche Transpiler werden verwendet, um den Code in ES5 zu konvertieren, was von diesen Browsern unterstützt wird. Der transpilierte Code für das Beispiel wäre:

console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));
Nach dem Login kopieren

Dieser transpilierte Code erstellt ein Array mit der Literalzeichenfolge „1“ und übergibt es als Argument an console.log.

Daher gilt: Die Backtick-Notation 1 ruft console.log als getaggte Vorlagenfunktion auf, die ein Array zurückgibt, das dann ausgedruckt wird. Die Raw-Eigenschaft im zurückgegebenen Array enthält den Literal-String-Wert.

Das obige ist der detaillierte Inhalt vonWarum gibt „console.log\\`1' ein Array in JavaScript 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