Maison > interface Web > js tutoriel > le corps du texte

Pourquoi `console.log\\`1`` renvoie-t-il un tableau en JavaScript ?

Mary-Kate Olsen
Libérer: 2024-11-23 06:24:18
original
618 Les gens l'ont consulté

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

Backticks et invocation de fonctions en JavaScript

Lorsque vous utilisez des backticks () pour envelopper un littéral de chaîne en JavaScript, vous pouvez rencontrer un comportement inattendu tel que un modèle balisé étant invoqué. Dans ce cas, console.log1 a abouti à la sortie "console.log1`nVM12380:2 ["1", raw: Array[1]]".

Modèles balisés dans ES6

L'explication réside dans le concept de modèles balisés, introduit dans ES6. Les modèles balisés vous permettent de baliser une chaîne de modèle avec une fonction. Lorsque la chaîne est utilisée avec la fonction, la fonction reçoit les valeurs analysées de la chaîne modèle et les valeurs de la chaîne.

Fonctionner comme une balise

Dans le exemple fourni, console.log est utilisé comme fonction de balise. Il est effectivement appelé avec les valeurs de chaîne analysées et la valeur de chaîne littérale sous forme de tableau. La fonction peut ensuite manipuler ces valeurs et renvoyer une nouvelle chaîne ou les transmettre pour un traitement ultérieur.

Tableau retourné

La fonction console.log n'effectue aucune opération particulière traitement sur les valeurs, il renvoie donc le tableau contenant la valeur de chaîne littérale. Ce tableau est ensuite imprimé par console.log, ce qui donne le résultat que vous avez observé.

Transpilation et littéraux de modèles

Lors de l'utilisation de fonctionnalités JavaScript modernes telles que des littéraux de modèles avec des anciens Des navigateurs, Babel ou des transpilateurs similaires sont utilisés pour convertir le code en ES5, qui est pris en charge par ces navigateurs. Le code transpilé pour l'exemple serait :

console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));
Copier après la connexion

Ce code transpilé crée un tableau contenant la chaîne littérale "1" et le transmet à console.log comme argument.

Par conséquent, la notation backtick 1 appelle console.log en tant que fonction de modèle balisée, qui renvoie un tableau qui est ensuite imprimé. La propriété brute dans le tableau renvoyé contient la valeur de chaîne littérale.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal