Duplicar posible:
Can you explain why ++[[]][+[]]+[+[]] = 10matriz de JavaScript al número
Me pregunto algo por unos días ... Sé que unario mas en JavaScript convierte primero es el operando de Número. Estoy aplicando + a una matriz vacía y me da el siguiente resultado:
+[] == 0
Cuando hago esto:
+[1] == 1
Pero:
+[1,2] == NaN
Las dos últimas cosas son casi claro, pero ¿por qué la matriz vacía es 0 ?! Es esto el contacto con:
[] == false
Algunas veces ECMAScript hace que me pregunte mucho ...
alert([![]+[]][+[]][+[]]+[![]+[]][+[]][+!+[]]+[!+[]+[]][+![]][+![]]+[![]+[]][+[]][+!+[]]+[![]+[]][+[]][+!+[]+!+[]]+' '+(![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]);
Saludos!
http://stackoverflow.com/questions/7202157/can-you-explain-why-10/7202287#7202287 al final publiqué una explicación para '+ [] === 0'. – pimvdb
@pimvdb Eso está mal ... pero una gran respuesta. –
¡Gracias! ¡Gran respuesta! –