(+(("lastIndexOf") in []) ** 55 + 2) + 5
Ответ
Во многих языках, таких как PHP и Python и других, есть оператор
возведения в степень (обычно ^ или **), оператор определён
имеющим приоритет выше, чем у унарных операторов, таких как унарный +
и унарный -, но есть несколько исключений. Например, в Bash оператор
** создан имеющим приоритет ниже, чем у унарных операторов. В JavaScript невозможно написать двухсмысленное выражение, т.е. вы не
можете ставить унарный оператор (+/-/~/!/delete/void/typeof) непосредственно перед базовым числом.
Взято ОТСЮДА
Другими словами: это ограничение js'а - нельзя использовать унарный оператор перед базовым числом (числом которое возводится в степень) из-за "двусмысленности".
Варианты исправления.
Явно указываем порядок действий:
((+(("lastIndexOf") in [])) ** 55 + 2) + 5
Используем старый метод:
(Math.pow(+("lastIndexOf" in []), 55) + 2) + 5
Комментариев нет:
Отправить комментарий