前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript-算数运算符

JavaScript-算数运算符

作者头像
WEBING
发布2019-02-26 10:38:09
1.1K0
发布2019-02-26 10:38:09
举报

一、算术运算符

运算符

描述

例子

x 运算结果

y 运算结果

+

加法

x=y+2

7

5

-

减法

x=y-2

3

5

*

乘法

x=y*2

10

5

/

除法

x=y/2

2.5

5

%

取模(余数)

x=y%2

1

5

++

自增

x=++y

6

6

++

自增

x=y++

5

6

--

自减

x=--y

4

4

--

自减

x=y--

5

4

二、加法 (+)

2.1 作用

(1)数值求和

(2)字符串拼接

2.2 示例

加法
加法

(1)布尔值会自动转换为 数值,false 转换为 0,true 转换为 1,然后再相加。

2.3 重载

加法运算符是在运行时决定,到底是执行相加,还是执行连接。也就是说,运算子的不同,导致了不同的语法行为,这种现象称为“重载”(overload)。

由于加法运算符存在重载,可能执行两种运算,使用的时候必须很小心。

重载
重载

上面代码中,由于从左到右的运算次序,字符串的位置不同会导致不同的结果

除了加法运算符,其他算术运算符(比如减法、除法和乘法)都不会发生重载。他们的规则是 所有运算子一律转为数值,再进行相应的数学运算。

都不重载
都不重载

上面代码中,减法、除法和乘法运算符,都是将字符串自动转为数值,然后再运算。

2.4 对象的加法

(1)如果运算子是对象,必须先转成原始类型的值,然后再相加。

(2)转换规则

首先,调用对象的 valueOf() 方法,返回对象自身,再调用对象的 toString() 方法,将其转为字符串(原始类型)

对象的加法
对象的加法

2.5 特殊行为

(1)某个运算数是 NaN,那么结果为 NaN。

(2)-Infinity 加 -Infinity,结果为 -Infinity。

(3)Infinity 加 -Infinity,结果为 NaN。

(4)+0 加 +0,结果为 +0。

(5)-0 加 +0,结果为 +0。

(6)-0 加 -0,结果为 -0。

(7)任何数据类型 + 字符串 = 字符串

字符串
字符串

(8)若数值求和,undefined 转换为 NaN,null 转换为 0

数值求和
数值求和

(9)若字符串拼接,undefined 转换为 'undefined',null 转换为 'null',false 转换为 'false',true 转换为 'true'

字符串拼接
字符串拼接

三、减法 (-)

3.1 特殊行为

(1)某个运算数是 NaN,那么结果为 NaN。

(2)Infinity 减 Infinity,结果为 NaN。

(3)-Infinity 减 -Infinity,结果为 NaN。

(4)Infinity 减 -Infinity,结果为 Infinity。

(5)-Infinity 减 Infinity,结果为 -Infinity。

(6)+0 减 +0,结果为 +0。

(7)-0 减 -0,结果为 -0。

(8)+0 减 -0,结果为 +0。

(9)某个运算符不是数字,那么结果为 NaN。

(10)undefined 转换为 NaN,null 转换为 0

减法
减法

四、乘法 (*)

4.1 特殊行为

(1)如果结果太大或太小,那么生成的结果是 Infinity 或 -Infinity。

(2)如果某个运算数是 NaN,结果为 NaN。

(3)Infinity 乘以 0,结果为 NaN。

NaN
NaN

(4)Infinity 乘以 0 以外的任何数字,结果为 Infinity 或 -Infinity。

Infinity或-Infinity
Infinity或-Infinity

(5)Infinity 乘以 Infinity,结果为 Infinity。

Infinity
Infinity

五、除法 (/)

5.1 特殊行为

(1)如果结果太大或太小,那么生成的结果是 Infinity 或 -Infinity。

(2)如果某个运算数是 NaN,结果为 NaN。

(3)Infinity 被 Infinity 除,结果为 NaN。

NaN
NaN

(4)Infinity 被任何数字除,结果为 Infinity。

Infinity
Infinity

(5)0 除一个任何非无穷大的数字,结果为 NaN。

NaN
NaN

(6)Infinity 被 0 以外的任何数字除,结果为 Infinity 或 -Infinity。

Infinity或-Infinity
Infinity或-Infinity

六、求余 (%)

求余运算符返回第一个操作数对第二个操作数的模,即 var1 对 var2 取模,其中 var1 和 var2 是变量。取模功能就是 var1 除以 var2 的 整型余数

6.1 示例

求余运算符(%)返回前一个运算子 后一个运算子 ,所得的 余数

求余运算符
求余运算符

6.2 注意

运算结果的正负号由 第一个运算子正负号 决定。

正负号
正负号

6.3 绝对值函数

为了得到 负数 的正确余数值,可以先使用绝对值函数。

绝对值函数
绝对值函数

6.4 浮点数运算

余数运算符还可以用于浮点数的运算。但是,由于浮点数 不是精确的值,无法得到完全准确的结果。

浮点数运算
浮点数运算

6.5 特殊行为

(1)如果被除数是 Infinity,或除数是 0,结果为 NaN。

(2)Infinity 被 Infinity 除,结果为 NaN。

(3)如果除数是无穷大的数,结果为被除数。

(4)如果被除数为 0,结果为 0。

Example
Example

七、幂 (**)

幂运算符返回第一个操作数做底数,第二个操作数做指数的乘方。即, var1var2 ,其中 var1 和 var2 是其两个操作数。

7.1 语法

运算符: var1 ** var2

7.2 注解

(1)包括 PHP 或 Python 等的大多数语言中,都包含幂运算符(一般来说符号是 ^ 或者 **)。这些语言中的幂运算符有着比其他的单目运算符(如一元 + 或一元 - )更高的优先级。但是作为例外,在 Bash 中,** 运算符被设计为比单目运算符优先级更低

(2)在最新的 JavaScript(ES2016) 中,禁止使用带歧义的幂运算表达式。比如,底数前不能紧跟一元运算符(+/-/~/!/delete/void/typeof)

Example
Example

7.3 示例

Example
Example

(1)如果要反转求幂表达式结果的符号,你可以采用这样的方式:

Example
Example

(2)强制求幂表达式的基数为负数

Example
Example

八、自增 (++)

自增运算符为其操作数增加1,返回一个数值。

8.1 后置和前置

(1)如果后置(postfix)使用,即运算符位于操作数的后面(如 x++),那么将会在自增前返回数值。

(2)如果前置(prefix)使用,即运算符位于操作数的前面(如 ++x),那么将会在自增后返回数值。

8.2 示例

自增
自增

8.3 练习

练习
练习

九、自减 (--)

自减运算符将其操作数减去1,并返回一个数值。

9.1 后置和前置

(1)如果后置使用(如 x--),则在自减前返回数值。

(2)如果前置使用(如 --x),则在自减后返回数值。

9.2 示例

自减
自减

阅读更多

参考文章 JavaScript 标准参考教程(alpha)运算符

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、算术运算符
  • 二、加法 (+)
    • 2.1 作用
      • 2.2 示例
        • 2.3 重载
          • 2.4 对象的加法
            • 2.5 特殊行为
            • 三、减法 (-)
              • 3.1 特殊行为
              • 四、乘法 (*)
                • 4.1 特殊行为
                • 五、除法 (/)
                  • 5.1 特殊行为
                  • 六、求余 (%)
                    • 6.1 示例
                      • 6.2 注意
                        • 6.3 绝对值函数
                          • 6.4 浮点数运算
                            • 6.5 特殊行为
                            • 七、幂 (**)
                              • 7.1 语法
                                • 7.2 注解
                                  • 7.3 示例
                                  • 八、自增 (++)
                                    • 8.1 后置和前置
                                      • 8.2 示例
                                        • 8.3 练习
                                        • 九、自减 (--)
                                          • 9.1 后置和前置
                                            • 9.2 示例
                                            领券
                                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档