Avatar ·

Pourquoi ++[[]][+[]]+[+[]] retourne la chaîne "10" en JavaScript?

Bonjour à tous ! J'apprends JavaScript et je suis tombé sur un code très étrange. Dans un article, j'ai vu cette expression : ```javascript console.log(++[[]][+[]]+[+[]]); // Affiche "10" ``` Je ne comprends pas du tout comment cela fonctionne. Pourquoi un tableau, plus plus, un tableau vide entre crochets et plus un tableau vide donnent la chaîne "10" ? Je sais qu'il y a une conversion de types en JS, mais cela ressemble à de la magie. J'ai essayé de décomposer cela en parties, mais je me suis encore plus embrouillé. Par exemple, que signifie `++[[]]` ? Ou `+[]` ? Comment tout cela donne-t-il exactement "10", et pas autre chose ? Quelqu'un pourrait-il expliquer étape par étape ce qui se passe dans cette expression ? Je serais très reconnaissant pour une explication détaillée, car je veux comprendre comment les opérateurs et la conversion de types fonctionnent en JavaScript à un niveau profond. Merci ! <<>>

Analyse de l'expression ++[[]][+[]]+[+[]] étape par étape

C'est un exemple classique qui montre le fonctionnement de la conversion de types et des opérateurs en JavaScript. Décomposons-le en parties.