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.