monolithed,
словами что тут все легко ты мне бросил вызов! Первый раз занимаюсь подобной хренью, но я пойму что это значит!
Первая часть рассуждений, все что в комментариях, строго мои мысли, и ничьи другие. И идут они в той послдедовательности, в которой пришли ко мне в голову
___3 = ''; // ''
____4 = !! [] | []; // | возвращает 1(typeof === Number) если хотя бы один из операндов true. Что такое "!!" так и не понял
_____5 = ~ !! []; /* ~ Возвращает число в таком виде: -(m+1), где m - наше число. Появились предположения что такое "!!", например:
var a = false;
alert(!! a) // false
alert([] | []) // 0, следовательно: [] == [] == false (ну это я так...для себя)
var b = [] // мы уже знаем что это false
alert(!!b) // true, так вот мое предположение: "!!" меняет с true на false и наоборот только у объектов */
____________12 = !! []; // исходя из предыдущих рассуждений, это вернет true == 1 (это также для меня)
_____5 = ~____________12; // смотрим что такое: "____________", это предыдущий пункт, рассчитаем по моей формуле: -(1+1) = -2. Эта переменная равна -2
/* Вдруг я заметил, что черта похоже с другой, и понял что есть еще один подводный камень: значения переменных еще и меняются!!
В таком случае, уже с моими знаниями, можем сказать что вернет первая _____ и вторая _____: 1) ~ !! [] == -2; 2) -2 Она что также равняется -2?! Зачем... Ладно..поехали дальше */
____4 = ____________12 | []; // так сейчас я уже все пронумеровал, и меня не обмануть) ____ = 1, после этого она также равняется единице
______6 = (___3 + {});
________8 = (___3 + ____________12);
_________9 = (____________12)[![]];
__________10 = ~ (_____) + ____4;
__ = ______[__________ * __________ + ____________] + ______[____] + (___ + (_________))[____] + (___ + ![])[~ (_____) + ____ + ____________] + ________[+[]] + ________[____] + (___ + (_________))[+[]] + ______[__________ * __________ + ____________] + ________[+[]] + ______[____] + ________[____];
[][__][__]('_', ((___ + +{})[~ (_____)] + (![] + ___)[~ (_____) + ____] + (___ + !! (____))[~ (_____) + ~ (_____) + ____] + (___ + !! (____))[____] + (___ + !! (____))[+[]]) + '(_)')(____); //alert(1)