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

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

Barbara Streisand
Libérer: 2024-11-15 10:29:02
original
674 Les gens l'ont consulté

Why does

Explorer l'énigme de "[[]][ []] [ []]" en JavaScript

Les développeurs JavaScript peuvent se retrouver perplexes par l'expression " [[]][ []] [ []]" car elle donne le résultat inattendu de "10". Examinons le processus derrière ce calcul énigmatique pour en démêler les subtilités.

Le décomposer

Si nous décomposons l'expression, elle se lit comme suit :

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

En JavaScript, les éléments d'un tableau peuvent être convertis en nombres à l'aide de l'opérateur « ». Plus précisément, [] === 0. Cela contraint les tableaux en chaînes vides, ce qui donne "" === 0.

Simplifier le calcul

Avec cette compréhension, nous pouvons simplifier l'expression comme suit :

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

L'accès au premier élément d'un tableau, [[]][0], renvoie l'intérieur tableau. En raison des références, nous l'appellerons A pour éviter toute confusion.

Incrémentation et conversion

L'opérateur incrémente son opérande de un et renvoie le résultat incrémenté. Par conséquent, [[]][0] est équivalent au nombre (A) 1.

Concaténation de chaînes

Nous pouvons encore simplifier :

(+[] + 1)
+
[0]
Copier après la connexion

Tout d'abord, [] est forcé dans la chaîne "0". Ensuite, [] donne 1. Enfin, "1" est concaténé avec "0" à l'aide de , car les tableaux peuvent être joints avec , ce qui donne 10.

Techniques

En coulisses, le processus de contrainte de [] vers 0 implique plusieurs spécifications références :

  • Opérateur unaire : Convertit son opérande en nombre, en le forçant d'abord à une chaîne ("").
  • Conversion de nombre ( ToNumber()): Contraint le tableau ([]) en une chaîne ("").
  • Conversion de valeur primitive (ToPrimitive()) : En mode String, utilise la méthode [[DefaultValue]] de l'objet.
  • [ [DefaultValue]] : Appelle la méthode [[Get]] avec argument "toString".
  • Méthode toString du tableau : Invoque la méthode [[Join]], qui donne "" pour [].

Conclusion

Grâce à cette analyse étape par étape, nous avons mis en lumière les mécanismes derrière le expression déroutante " [[]][ []] [ []]" en JavaScript. Son exécution implique la coercition, l'incrémentation et la concaténation, révélant finalement le parcours logique qui mène au résultat surprenant de « 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!

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