JavaScript中的算术运算符

JavaScript算术运算符

加法

加法(+)运算的用法如下所示:

var result = 1 + 2;		//3

如果加法操作符两边都是数值,执行常规的加法运算,然后根据下列规则返回结果:

  • 如果有一个操作数是NaN,则结果是NaN。
  • 如果是Infinity加Infinity,则结果是Infinity。
  • 如果是-Infinity加-Infinity,则结果是-Infinity。
  • 如果是Infinity加-Infinity,则结果是NaN。
  • 如果是+0加+0,则结果是+0。
  • 如果是-0加-0,则结果是-0。
  • 如果是+0加-0,则结果是+0。

不过,如果有一个操作数是字符串,那么就应该遵循下列规则:

  • 如果操作数都是字符串,则将第一个操作数和第二个操作数拼接起来。
  • 如果只有一个操作数是字符串,则将另一个操作数转化为字符串,然后再将两个恶字符串拼接起来。
  • 如果有一个操作数对象、数值或布尔值,则调用它们的toString()方法取得相应的字符串值,然后再应用前面字符串的规制。对于null和undefined,分别调用String()方法取得字符串"undefined"和"null"。
    举个例子:
var result = 5 + 5;			//两个数值相加
console.log(result);			//10
var result1 = 5 + "5";		//一个数值和一个字符串进行加法运算
console.log(result1);		//"55"

减法

减法运算(-)用法如下所示:

var result = 2 - 1;		//1

与加法操作符类似,JavaScript中的减法在处理个种数据的时候,同样遵循一些特殊规则:

  • 如果减法操作符两边都是数值,执行常规的减法运算
  • 如果有一个操作数是NaN,则结果是NaN。
  • 如果是Infinity减Infinity,则结果是NaN。
  • 如果是-Infinity减-Infinity,则结果是NaN。
  • 如果是Infinity减-Infinity,则结果是Infinity。
  • 如果是-Infinity减Infinity,则结果是-Infinity。
  • 如果是+0减+0,则结果是+0。
  • 如果是-0减-0,则结果是+0。
  • 如果是-0减+0,则结果是-0。
  • 如果一个字符串是字符串、布尔值、null或undefined,则现在后台调用Number()函数将其转换为数值,然后再根据上面的规则进行减法运算。如果调用Number()函数转换的结果是NaN,则运算的结果是NaN。
  • 如果有一个操作数是对象,则调用valueOf()方法取得该对象的数值,如果得到的值是NaN,则减法运算的结果就是NaN,如果对象没有valueOf方法,则调用toString()方法并将得到的字符串转换为数值。举个例子:
var result1 = 5 - true;		
var result2 = NaN - 1;		
var result3 = 5 - 3;		
var result4 = 5 - "";		
var result5 = 5 - "2";		
var result6 =  5 - null;	
console.log(result1);		//4,因为true转换为1
console.log(result2);		//NaN
console.log(result3);		//2
console.log(result4);		//5,因为""被转换为0
console.log(result5);		//3,因为"2"被转换为2
console.log(result6);		//5,因为null被转换为0

乘法

乘法运算(*)用法如下所示:

var result = 3 * 5;		//15

在处理特殊值的情况下,乘法遵循下列规则:

  • 如果操作的数都是数值,执行常规的乘法运算
  • 如果有一个操作数是NaN,则结果是NaN
  • 如果是Infinity与0相乘,则结果是NaN
  • 如果是Infinity与非0数相乘,则结果是Infinity或-Infinity,取决于有符号操作数的符号
  • 如果Infinity与Infinity相乘,则结果为Infinity
  • 如果有一个操作数不是数值,则在后台调用Number()函数将其转换为数值

除法

除法操作符(/)用法如下所示:

var result = 15 / 3;
console.log(result);		//5

除法与乘法类似,也有特殊的处理规则:

  • 如果操作的数都是数值,执行常规的除法运算
  • 如果有一个操作数是NaN,则结果是NaN
  • 如果是0与0相除,则结果是NaN
  • 如果是非0有限数被0除,则结果是Infinity或-Infinity,取决于有符号操作数的符号
  • 如果Infinity与Infinity相除,则结果为NaN
  • 如果有一个操作数不是数值,则在后台调用Number()函数将其转换为数值

取余(求模)

取余运算用法如下所示:

var result = 10 % 3;
console.log(result);		//1

取余与乘除类似,有以下特殊规则来处理特殊的值:

  • 如果操作的数都是数值,执行常规的除法运算。返回除得的余数
  • 如果被除数是无穷大值,而除数是有限大的值,则结果是NaN
  • 如果被除数是有限大的值,而除数是0,则结果是NaN
  • 如果Infinity被Infinity除,则结果是NaN
  • 如果被除数是有限大的值而除数是无穷大的值,则结果是被除数
  • 如果除数是零,则结果是零
  • 如果有一个操作数不是数值,则在后台调用Number()函数将其转换为数值
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值