Fonctions d'appel de backticks en JavaScript : démystifier les modèles balisés
Lors de l'exécution de code JavaScript intégrant des backticks, tel que console.log1`, certains utilisateurs ont rencontré un résultat inattendu. Ce comportement provient des modèles balisés dans ES-6, qui permettent une manipulation de chaînes personnalisée.
Comprendre les modèles balisés
Les modèles balisés sont des littéraux de modèles précédés d'une fonction spéciale, comme console.log. Ces fonctions reçoivent les valeurs analysées des chaînes de modèle ainsi que leurs homologues brutes non analysées.
Dans le cas de console.log1, la fonction de balise est console.log. Il accepte deux paramètres : les chaînes (un tableau de chaînes littérales) et les valeurs (un tableau de valeurs interpolées).
L'explication de la sortie
Quand console.log1` est exécuté, le moteur JavaScript transpile le code ES6 vers ES5. Le code transpilé ressemble à ce qui suit :
console.log(_taggedTemplateLiteralLoose(["1"], ["1"]));
Ici, _taggedTemplateLiteralLoose est une fonction transpilée qui attribue le littéral de chaîne brut à la propriété raw du tableau de chaînes.
Le littéral de modèle balisé, donc , renvoie un tableau avec la structure suivante :
["1", { raw: ["1"] }]
Lorsque ce tableau est passé à console.log, le tableau lui-même est enregistré, ce qui donne le résultat observé :
["1", { raw: ["1"] }]
Avantages des modèles balisés
Les modèles balisés offrent plusieurs avantages par rapport à la manipulation de chaînes traditionnelle méthodes :
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!