Почему ответ 42?

Я пытаюсь понять, как это выражение палиндрома дает 42. Я знаю о правилах приоритета операторов, но это за пределами моего текущего уровня Javascript. Как я могу начать?

alert ("The answer is " +

[(0>>(0==0))+([0]+[(0==0)+(0==0)]^0)]*[(0^[(0==0)+(0==0)]+[0])+((0==0)<<0)]

);

Ответы на вопрос(2)

Ваш ответ на вопрос