Maison >interface Web >js tutoriel >Pourquoi « [[]][ []] [ []] » est-il évalué à « 10 » en JavaScript ?

Pourquoi « [[]][ []] [ []] » est-il évalué à « 10 » en JavaScript ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-20 21:25:19439parcourir

Why Does

Démêler le puzzle JavaScript : déchiffrer " [[]][ []] [ []]"

En JavaScript, l'expression " [[]][ []] [ []]" peut sembler déroutant au début, mais un examen plus approfondi révèle une série d'opérations qui renvoient finalement la chaîne "10."

En décomposant l'expression, nous avons :

  • [[]][ []] [ []]

Disséquons l'expression étape par étape :

1. [] :

En JavaScript, [] contraint le tableau vide [] en un nombre, ce qui donne 0. Cela est dû au comportement de l'opérateur unaire, qui convertit son opérande en un type Number. .

2. [[]][ []] :

Cette expression renvoie le tableau interne ([]) du tableau externe [[]].

3. [[]][ []] :

L'opérateur incrémente la valeur de son opérande de un. Par conséquent, cette opération incrémente le tableau interne ([)]), ce qui est une fausse valeur. L'incrémentation d'une valeur fausse en JavaScript renvoie 1.

4. [ []] :

Semblable à [], cette expression contraint le tableau vide [] en un nombre, ce qui donne à nouveau 0.

5. 1 0 :

Nous avons maintenant deux nombres à ajouter : 1 du tableau interne incrémenté et 0 de la deuxième coercition du tableau vide. Le résultat est 1.

6. 1 [0] :

Fait intéressant, en JavaScript, [0] est véridique et est évalué à la chaîne « 0 ». Lors de la concaténation d'une chaîne et d'un nombre, JavaScript force le nombre à devenir une chaîne. Par conséquent, cette opération donne "10".

Par conséquent, l'expression apparemment énigmatique " [[]][ []] [ []]" se déroule en une série de conversions de types et de concaténations, renvoyant finalement la chaîne " 10."

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!

Déclaration:
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