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

Pourquoi [[]][ []] [ []] renvoie-t-il « 10 » en JavaScript ?

Barbara Streisand
Libérer: 2024-11-17 15:09:02
original
829 Les gens l'ont consulté

Why does   [[]][ []] [ []] return

Dévoilement du mystère derrière la valeur de retour de [[]][ []] [ []]

Dans le domaine de JavaScript, l'expression énigmatique [[]][ []] [ []] en laisse beaucoup perplexes avec sa valeur de retour apparemment absurde : "10". En plongeant dans les profondeurs du processus d'évaluation de JavaScript, nous nous lançons dans un voyage pour déchiffrer ce puzzle.

Dans un premier temps, décomposons l'expression :

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

Expansion [[]] [ []]

En JavaScript, l'expression [] est évaluée à 0. En effet, les tentatives de conversion de l'opérande en nombre et un tableau vide sont contraints à une chaîne, qui est ensuite convertie en un nombre donnant 0.

En remplaçant [] par son équivalent, on obtient :

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

Évaluer [[]][0]

L'opérateur incrémente son opérande de un, donc [[]][0] est équivalent à ([[]][0]) 1. Puisque [[]][0] récupère le premier élément du tableau vide, il renvoie un autre tableau vide. Ainsi, ([[]][0]) est équivalent à [], dont nous savons que donne 0.

Simplifiant l'expression restante

En simplifiant davantage, nous obtenons :

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

La magie de coercition de JavaScript

Les règles de coercition de JavaScript entrent en jeu lorsqu'il s'agit de l'ajout d'un tableau et d'un nombre. Tout d'abord, le tableau est contraint à une chaîne ("0"), puis le nombre est contraint à une chaîne ("1"). La concaténation de chaînes donne le résultat final :

console.log("1" + "0") // "10"
Copier après la connexion

Contexte supplémentaire

  • L'expression [[]] peut être comprise comme un moyen court de contraindre un tableau en un nombre (0).
  • L'opération [] n'est pas explicitement définie dans la spécification JavaScript, mais elle est le résultat d'une série d'étapes de coercition.
  • Les règles de coercition de JavaScript peuvent conduire à comportement inattendu dans certains scénarios, mais ils offrent une flexibilité dans la conversion des valeurs en différents types.

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