Disallow the use of
Math.pow in favor of the
** operator (prefer-exponentiation-operator)
--fix option on the command line can automatically fix some of the problems reported by this rule.
Introduced in ES2016, the infix exponentiation operator
** is an alternative for the standard
Infix notation is considered to be more readable and thus more preferable than the function notation.
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.
- MDN Arithmetic Operators - Exponentiation
- Issue 5848: Exponentiation operator ** has different results for numbers and variables from 50 upwards
This rule was introduced in ESLint 6.7.0.