•  阅读 2 分钟

JavaScript 中的指数(幂)运算

我总是发现有一点不便在使用旧的方式进行指数运算。幸运的是,新的指数运算方式已引用。其语法也与其他语言(如 Ruby,Python)一样简明。值得点赞 👍

// Old way
const old = Math.pow(3, 7)

// 2187
// ✅ ES7 way
const es7 = 3 ** 7
// 2187

中缀表示法(Infix notation)

使用 ** 称为中缀表示法。其是指放在在操作数之间的运算符。其他的中缀运算符包括:+ 或者 -

es7 引入这个语法的原因是:

**操作符 ** 相比函数而言更加简单明了,使其更为可取**

其他语言中的指数运算

也许,你已注意到在其他语言中的这一语法是很简洁的:

// Python
a ** b

// Ruby
a ** b

// Perl
a ** b

// F#
a ** b

我很喜欢它与其他语言相似的语法。因为这样使得 JavaScript 更容易学习,而且可以更快的开始运行起来。

赋值运算

您应该已经看到过算术运算符与赋值运算符相结合。例如 +=

a += b

// Same as
// a = a + b

相似的,指数运算符也可以这样做,**=

a **= b

// Same as
// a = a ** b

负基数

有意容易犯的错误是,当指数运算的基数是负数时,你应当使用小括号将其包起来。

// ❌ 语法错误
const wrong = (-3) ** 7

// ✅
const correct = (-3) ** 7

然而,这种错误不存在于指数函数(Math.pow)的使用。

const works = Math.pow(-3, 7) // 正确的

相关引用

文章由 吳文俊 翻译,原文地址 Exponentiation Operator **,转载请注明来源。

> 分享并评论 Twitter / Facebook
> cd ..