Когда я использую оператор экспоненты (**
) в JavaScript, он обычно работает так, как ожидалось:
2 ** 2 // 4
2 ** -2 // 0.25
Но когда левый операнд отрицательный
-2 ** 2
Я получаю синтаксическую ошибку:
Uncaught SyntaxError: неожиданный токен **
Я могу легко обойти это, заключив скобки вокруг -2
(-2) ** 2 // 4
но мне любопытно, что вызвало эту ошибку. У других операторов (+ - * / %
и т. д.) такой проблемы нет. Почему это происходит для оператора **
?