Javascript中加法运算符总结

Javascript的加性运算符会在后台转换不同的数据类型。

一.如果两个操作数都是数值,按照常规的加法计算:

var a = 2;
console.log(a+NaN); //NaN 如果有一个操作数是NaN,则返回NaN
console.log(Infinity+Infinity);//Infinity
console.log(Infinity+(-Infinity));//NaN
console.log((-Infinity)+(-Infinity));//Infinity
console.log((+0)+(+0));//+0
console.log((+0)+(-0));//+0
console.log((-0)+(-0));//-0

二.如果有一个操作数是字符串

  • 如果两个操作数都是字符串,相当于字符串拼接
  • 如果只有一个操作数是字符串,则将另一个操作数转化为字符串,然后再执行字符串拼接
    -如果有一个操作数是对象,数值或者布尔值,首先调用它们的toString()方法取得对应的字符串,然后执行拼接(包括nullundefined这里跟下一篇:Javascript中减法运算符总结
    总结要区分

1.String+String

var a = '10',
b = '20';
console.log(a+b);  //1020

2.String+Object

var a = '10',
b = {_key:20};
console.log(a+b);  //10[object Object]
//Object.prototype.toString()方法返回一个表示该对象的字符串。

3.String+Number

var a = '10',
b = 20;
console.log(a+b);  //1020

var a = 10,
b = '20';
console.log(a+b);  //1020

4.String+Boolean

var a = true,
b = '20';
console.log(a+b);  //true20

var a = false,
b = '20';
console.log(a+b);  //false20

5.String+null

var a = null,
b = '20';
console.log(a+b);  //null20

6.String+undefined

var a = undefined,
b = '20';
console.log(a+b);  //undefined20

三.加法的独立操作

var a = 10,
b = 5;
var result = 'hello world 10 + 5 = ' + a + b;
console.log(result);  //'hello world 10 + 5 = 105'
var a = 10,
b = 5;
var result = 'hello world 10 + 5 = ' + (a + b);
console.log(result);  //'hello world 10 + 5 = 15'

你可能感兴趣的:(javascript)