Возможный дубликат:
Можете ли вы объяснить, почему ++ [[]] [+ []] + [+ []] = 10
Мне интересно что-то в течение нескольких дней... Я знаю, что унарный плюс в JavaScript сначала преобразует его в число. Я применяю + к пустому массиву и получаю следующий результат:
+[] == 0
Когда я это сделаю:
+[1] == 1
Но:
+[1,2] == NaN
Последние две вещи почти понятны, но почему пустой массив равен 0?! Связано ли это с:
[] == false
Несколько раз ECMAScript заставляет меня задаться вопросом...
alert([![]+[]][+[]][+[]]+[![]+[]][+[]][+!+[]]+[!+[]+[]][+![]][+![]]+[![]+[]][+[]][+!+[]]+[![]+[]][+[]][+!+[]+!+[]]+' '+(![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]);
С уважением!