prefer-exponentiation-operator
The --fix
option on the command line can automatically fix some of the problems reported by this rule.
Disallows the use of Math.pow
in favor of the **
operator.
Introduced in ES2016, the infix exponentiation operator **
is an alternative for the standard Math.pow
function.
Infix notation is considered to be more readable and thus more preferable than the function notation.
Rule Details
This rule disallows calls to Math.pow
and suggests using the **
operator instead.
Examples of incorrect code for this rule:
/*eslint prefer-exponentiation-operator: "error"*/
const foo = Math.pow(2, 8);
const bar = Math.pow(a, b);
let baz = Math.pow(a + b, c + d);
let quux = Math.pow(-1, n);
Examples of correct code for this rule:
/*eslint prefer-exponentiation-operator: "error"*/
const foo = 2 ** 8;
const bar = a ** b;
let baz = (a + b) ** (c + d);
let quux = (-1) ** n;
When Not To Use It
This rule should not be used unless ES2016 is supported in your codebase.
Further Reading
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Exponentiation
- https://bugs.chromium.org/p/v8/issues/detail?id=5848
Version
This rule was introduced in ESLint 6.7.0.