目录
1.乘法:*
2.除法:/
3.求模:%
4.加法:+
5.减法:-
1.乘法:*
乘法操作符由一个星号(*)表示,用于计算两个数值的乘积。
A*B
- 如果A,B都是数字,则运行结果为A*B的值,遵循数学运算法则
- 如果乘积超过了数值的表示范围,则返回 Infinity 或-Infinity;
- 任何数和NaN运算结果都为aN
- Infinity*0=NaN
- Infinity与非0数值相乘,则结果是 Infinity 或-Infinity
- Infinity*Infinity=Infinity
- 如果A,B不是数值,则后台调用 Number()将其转换为数值,然后再应用上面的规则
注:
①Infinity:无限
②Number():将其他数据类型转为数字
a.字符串:
空字符串、空格、tab都是0;
纯数字依然是数字;
非数字存在就是NaN;
其他进制的值会转为十进制;
b. undefined转为NaN;
c.null 转为0;
d. object,function 转为NaN;
e. 数组:
空数组值为0;
数组有一个值且为数字,转为数字;
2.除法:/
除法操作符由一个斜线符号(/)表示,执行第二个操作数除第一个操作数的计算。
A/B
- 如果A,B都是数字,则运行结果为A/B的值,遵循数学运算法则
- 如果商超过了数值的表示范围,则返回 Infinity 或-Infinity;
- 任何数和NaN运算结果都为aN;
- Infinity / Infinity = NaN;
- 0/0=NaN;
- 非零数/0=Infinity 或-Infinity;
- Infinity/任意数=Infinity;
- 如果有一个操作数不是数值,则在后台调用 Number()将其转换为数值,然后再应用上面的规则。
3.求模:%
求模(余数)操作符由一个百分号(%)表示,
A%B,B表示这个表达式结果永远不会超过B的数值。
- 如果操作数都是数值,执行常规的除法计算,返回除得的余数;
- Infinity%?=NaN;
- 5%0=NaN;
- Infinity % Infinity = NaN;
- 5%Infinity = 5;
- 0%?=0;
- 如果有一个操作数不是数值,则在后台调用 Number()将其转换为数值,然后再应用上面的规则
4.加法:+
A+B
- 字符串直接拼接
- 数字相加
5.减法:-
A-B
- 如果有一个操作数是字符串、布尔值、 null 或 undefined,则先在后台调用 Number()函数将其转换为数值,然后再根据前面的规则执行减法计算。如果转换的结果是 NaN,则减法的结果就是 NaN;
- 如果有一个操作数是对象,则调用对象的 valueOf()方法以取得表示该对象的数值。如果得到的值是 NaN,则减法的结果就是 NaN。如果对象没有 valueOf()方法,则调用其 toString()方法并将得到的字符串转换为数值。