Heim >Web-Frontend >js-Tutorial >Warum gibt „console.log\\`1' ein Array in JavaScript zurück?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-23 06:24:18673Durchsuche

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"]));

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!

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