Maison > interface Web > js tutoriel > Pourquoi [[]][ []] [ []] donne-t-il la chaîne « 10 » en JavaScript ?

Pourquoi [[]][ []] [ []] donne-t-il la chaîne « 10 » en JavaScript ?

Barbara Streisand
Libérer: 2024-11-21 06:24:10
original
832 Les gens l'ont consulté

Why Does   [[]][ []] [ []] Result in the String

Concaténation de chaînes inattendue en JavaScript

En JavaScript, l'expression particulière [[]][ []] [ []] donne étonnamment le chaîne "10". Comprendre le processus complexe derrière ce comportement nécessite de décomposer ses composants individuels :

++[[]]
+
[+[]]
Copier après la connexion

Dévoilement du premier composant : [[]]

L'opérateur d'incrémentation de préfixe incrémente son opérande par un et renvoie le résultat incrémenté. Dans ce cas, l'opérande est [[]], qui correspond au tableau vide ([]). L'incrémentation d'un tableau n'est pas logique, mais JavaScript s'adapte à de tels cas en convertissant le tableau en nombre à l'aide de l'opérateur.

Comprendre la conversion : [[]]

Le L'opérateur, lorsqu'il est appliqué à un tableau, tente de le convertir en nombre. Cependant, un tableau vide est évalué comme un mensonge, qui est contraint au nombre 0. Ainsi, [[]] devient équivalent à 0, ou simplement 0.

Le deuxième composant : [ []]

En suivant la même logique, [ []] convertit également le tableau vide en 0.

Rassembler : (0 1) [0]

L'expression incrémentée devient 1 (0 1), qui est ensuite ajoutée à [0]. En JavaScript, les tableaux peuvent être transformés en chaînes en joignant leurs éléments par des virgules. Par conséquent, [0] équivaut à "0" (rejoindre un tableau avec un élément entraîne l'élément lui-même).

Contraindre des nombres en chaînes :

L'expression devient désormais 1 "0", que JavaScript tente de concaténer sous forme de chaînes. Le résultat est "10".

Analyse approfondie des coercitions de type :

  • [] contraint le tableau vide à 0 (nombre).
  • [] contraint le tableau vide à 0 (Nombre).
  • L'incrémentation de un donne 1 (Nombre).
  • Rejoindre le tableau [0] produit "0" (Chaîne).
  • L'ajout des nombres 1 et 0 les contraint en chaînes, ce qui donne "1" et "0, " respectivement.
  • La concaténation des chaînes donne "10".

Malgré son apparence complexe Apparemment, l'expression adhère aux règles de priorité des opérateurs JavaScript, avec une priorité plus élevée que . Comprendre ces règles de priorité est crucial pour déboguer efficacement de telles expressions.

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