JS 中加减运算转换规则

+加 (以下的转化规则称作隐式转换)

  • 1、如果两边都是数字,则就是普通的数学计算

  • 2、如果有一边是字符串,则另一边也转成字符串,变成字符串的拼接

  • 3、如果没有字符串,则调用Number方法,转成数字,再进行相加

  • 4、如果有一边是对象,则对象调用toString得到字符串表示,再进行计算

 

console.log(5 + '10'); // '510'
console.log(5 + 10); // 15

var a = 5;
var b = 10;
// console.log('5+10的和是15');
console.log(a + '+' + b + '的和是' + a + b);
console.log(a + '+' + b + '的和是' + (a + b));

console.log(true + 1); // 2
console.log(true + false); // 1
console.log(true + ''); // 'true'
console.log(false + null); // 0
console.log(undefined + null); // NaN
console.log(true + 'false'); // 'truefalse'
console.log(true + [true]); // 'truetrue'

-减 (以下的转化规则称作隐式转换){* / % 都一样}

  • 1、如果两边都是数字,则就是普通的数学计算

  • 2、如果两边有字符,会调用Number将其转化为数字进行计算

  • 3, 通过Number转换null 转化为0; undefined转化为NaN;

console.log(100 - 10); // 90
console.log(100 - 't'); // NaN
console.log(100 - ''); // 100
console.log(100 - true); // 99
console.log(100 - '80'); // 20
console.log(100 - null); // 100
console.log(100 - undefined); // NaN
原文地址:https://www.cnblogs.com/ximenchuifa/p/13392468.html