返回介绍

JavaScript 中的数学运算符

发布于 2025-01-23 23:27:40 字数 2909 浏览 0 评论 0 收藏 0

对任何编程语言执行数学运算和微积分都是很常见的事情。 JavaScript 提供了几个运算符来帮助我们处理数字。

算术运算符

相加 (+)

const three = 1 + 2
const four = three + 1

如果你使用字符串, + 运算符也可以作为字符串连接,所以要注意:

const three = 1 + 2
three + 1 // 4
'three' + 1 // three1

相减(-)

const two = 4 - 2

除法(/)

返回第一个数字和第二个数字之间商:

const result = 20 / 5 //result === 4
const result = 20 / 7 //result === 2.857142857142857

如果除以 0,JavaScript 不会抛出任何错误,而是返回 Infinity (如果是负值返回 -Infinity )。

1 / 0 //Infinity
-1 / 0 //-Infinity

取余(%)

取余在很多情况下都很有用:

const result = 20 % 5 //result === 0
const result = 20 % 7 //result === 6

对 0 取余始终是 NaN ,一个特殊值,意思是“不是一个数字”:

1 % 0 //NaN
-1 % 0 //NaN

乘法 (*)

1 * 2 //2
-1 * 2 //-2

求幂(**)

将第一个操作数乘第二个操作数次数:

1 ** 2 //1
2 ** 1 //2
2 ** 2 //4
2 ** 8 //256
8 ** 2 //64

一元运算符

递增 (++)

递增数字。这是一个一元运算符,如果放在数字之前,则返回递增后的值。

如果放在数字后面,它将返回原始值,然后递增。

let x = 0
x++ //0
x //1
++x //2

递减(–)

和递增运算符相似,不过它递减值。

let x = 0
x-- //0
x //-1
--x //-2

一元负号(-)

返回操作数的负值

let x = 2
-x //-2
x //2

一元正号(+)

如果操作数不是数字,它会尝试将操作数转换数字。否则,如果操作数已经是一个数字,它什么都不做。

let x = 2
+x //2

x = '2'
+x //2

x = '2a'
+x //NaN

赋值快捷方式

常规赋值运算符 = ,对所有算术运算符的都有一个快捷方式,它们允许您组合赋值,将第一个操作数和第二个操作数的结果赋值给第一个操作数。

它们是:

+= :加法赋值
-= :除法赋值
*= :乘法赋值
/= :除法赋值
%= :取余赋值
**= :求幂赋值

例子:

const a = 0
a += 5 //a === 5
a -= 2 //a === 3
a *= 2 //a === 6
a /= 2 //a === 3
a %= 2 //a === 1

优先级

每个复杂的表达式都会引入优先问题。

看这个:

const a = 1 * 2 + 5 / 2 % 2

结果等于 2.5。但是为什么呢?哪个运算先执行,哪个后执行?

有些运算符的优先级比其它的高。优先级规则如下:

  • - + ++ -- 一元运算符,递增,递减
  • * / % 乘法/除法
  • + - 加法/减法
  • = += -= *= /= %= **= 赋值运算

同一级别的运算符(如 +- )按找到的顺序执行

按照上面的顺序,我们可以解决这个计算:

const a = 1 * 2 + 5 / 2 % 2
const a = 1 * 2 + 5 / 2 % 2
const a = 2 + 2.5 % 2
const a = 2 + 0.5
const a = 2.5

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文