Maison > interface Web > js tutoriel > Pourquoi `console.log`1 affiche-t-il `[\'1\', raw : Array[1]]` en JavaScript ?

Pourquoi `console.log`1 affiche-t-il `[\'1\', raw : Array[1]]` en JavaScript ?

Linda Hamilton
Libérer: 2024-11-29 19:12:11
original
518 Les gens l'ont consulté

Why Does `console.log`1 Output `[

Dévoiler l'énigme des backticks : appeler des fonctions en JavaScript

Dans le domaine de JavaScript, les humbles backticks (…) détiennent un pouvoir mystérieux , capable d'invoquer des fonctions de manière transparente. Pourtant, ce phénomène peut laisser perplexes même les développeurs chevronnés. Pourquoi le code console.log1` donne-t-il une sortie inattendue comme "console.log1`nVM12380:2 ["1", raw: Array[1]]" ?

La réponse réside dans le concept de Tagged Modèles, une fonctionnalité intrigante introduite dans ES-6. Les modèles balisés permettent aux développeurs de baliser les chaînes de modèles avec des fonctions, leur permettant d'effectuer des opérations sur les valeurs analysées de ces chaînes.

Dans notre exemple, les backticks (…) balisent la chaîne littérale "1" avec la console. fonction de journalisation. Comme toute autre fonction, la fonction balisée reçoit les valeurs analysées de la chaîne modèle, qui sont la chaîne elle-même et un tableau contenant sa valeur brute.

Les fonctions balisées comme console.log peuvent traiter le modèle de chaîne avant qu'il ne soit sortir. Dans ce cas, la fonction imprime simplement le tableau qu'elle reçoit, ce qui donne le résultat que nous observons.

Babel, un transpileur JavaScript populaire, transforme le code du modèle Tagged en une forme plus compatible ES-5. Dans notre cas, le code suivant est généré :

var _taggedTemplateLiteralLoose = function (strings, raw) {
  strings.raw = raw;
  return strings;
};

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

La fonction _taggedTemplateLiteralLoose renvoie le modèle balisé, qui est ensuite transmis à console.log. Cela explique pourquoi le tableau ["1", raw: Array[1]] est imprimé dans la console.

Ainsi, la puissance des backticks réside dans leur capacité à faciliter les modèles balisés, un mécanisme qui permet aux fonctions de traiter et améliorer les chaînes avec lesquelles ils sont étiquetés, ouvrant ainsi un monde de possibilités dans la programmation JavaScript.

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