I recently came across an interesting website that illustrates Javascript Obfuscator: http://bl.ocks.org/jasonsperske/5400283
For example, (([]===[])+/-/)[1] gives a and (1+{})[(1<<1)+1] gives b .
I tried to understand the sequence of evaluating these confusing results, but was in vain.
Taking (1+{})[(1<<1)+1] as an example, I understand that << is a bitwise shift operator and returns 2, so the expression becomes (1+{})[3] . But then I canβt understand what this means 1+{} and [3] .
Google is not very useful for this problem, because search engines do not really like brackets or slashes, so if there are duplicate questions, I regret it.
source share