+(加号)
功能:
1、对数字进行代数求和
2、对字符串进行连接操作
3、将一个数值转换成字符串
字符串运算:
字符串+字符串—两者直接拼接
字符串+数值—数值转为字符串再拼接
如果有一个操作数是对象、数值或布尔值,则调用它们的 toString() 方法取得相应的字符串值,然后再应用前面关于字符串的规则。
例子:
var a = '123', b = 1, c = 2, d = {'my'}
console.log(a + b) // '1231'
// 多次运算
如果数值和字符串一起混,数值类型的用 () 包裹,提高优先级;否则是字符串+2;计算的结果再+5;
console.log(a + b + c) // '12312'
console.log(a + (b + c)) // '1233'
// 与对象一起运算
console.log(d + b) // 'my1'
-(减号)
功能:
1、对操作数进行”取反”操作
2、对数字进行减法操作
3.、将字符串转换成数值
字符串运算:
如果有一个操作数是非数字,则先调用它们的 Number() 方法取得相应的字值,然后再应用前面的规则。
Number() 方法规则:
- 1、Boolean转换为数值的时候:
- true转为1;
- flase转为0;
- 2、null转换为数值的时候 转换为0
- 3、undefined转换为数值的时候 转为NaN
- 4、string转换为数值的时候:
- 4-1、如果只包含数字
- 转为十进制数
- 前导0被忽略
- 4-2、如果包含有效浮点格式
- 浮点数值
- 忽略前导0
- 包含有效十六进制格式;相同大小的十六进制整数
- 4-1、如果只包含数字
- 5、空字符串转为0;备注:""是空字符串 " "这个就不是空字符串了
- 6、其他格式字符串NaN
例子
var a = '123', b = 1, c = ‘2’, d = {'my'}
console.log(a - b) // 122
console.log(a - b - c) // 120
console.log(d - b) // NaN
*和/(乘除)
功能:
1、对两个运算数进行乘法(除法)运算;
2、符号问题:同号得正,异号得负;
3、如果有一个操作数不是数值,则在后台调用 Number() 将其转换为数值,然后再应用上面的规则。
4、如果有一个操作数是 NaN ,则结果是 NaN
%(求余/求模)
功能:
返回两个除数的余数
符号问题:和第一个运算数的符号相同;
如果被除数是零,则结果是零;
如果有一个操作数不是数值,则在后台调用 Number() 将其转换为数值,然后再应用上面的规则。