Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
[]['constructor']['constructor']('alert(this)')();
… однако это не так, не вдаваясь в подробности представления чисел и всякие дебри (мантиссы, знаковые разряды) ...
особенность js (и не только), в том, то при булевых операциях если операнд не является булевым типом и не равен 0 то он признается за true
0
, false
, undefined
, null
, ''
(пустой строке), то он приводится к false
. Во всех остальных случаях — к true
.var hash = function(){var _=substr(1, 2, substr(2, 4, 'ngveifq3dm3129ejf'))(); return substr(5, 3,_)+substr(6, 8,_)....
деталей сейчас уже не вспомню.if(window.alert) return true; else return false
в браузере вернёт true а в голом интерпретаторе false)Давайте еще подумаем, сколько будет -1/-0? Бесконечность
Еще раз об обфускации JavaScript или сказ о том, как я обфускатор писал. Часть 1