JavaScript的加号运算符

Posted yangrenmu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript的加号运算符相关的知识,希望对你有一定的参考价值。

先上结果(来自 http://stackoverflow.com/questions/7124884/why-is-1-2-3-4-1-23-4-in-javascript):

不同类型操作数相加后的类型如下表:

  undefined null       boolean number string
undefined number number number number string
null number number number number string
boolean number number number number string
number number number number number string
string string string string string string

 

 

 

 

 

 

 

 

operand+operand=result

相加规则:

  1.如果操作数中有一个是对象,它会先尝试valueOf()方法,若返回的值不是原始值,则调用tostring()方法,然后用返回值进行运算。

  2.如果操作数中有一个是字符串,另一个也会被转换为字符串,然后连接在一起,组成新的字符串。

  3.其他情况下,两个操作数会转换为数字,执行相加运算。

示例(用例结果为Firefox(49.0.2)下的结果):

1.数字+undefined

  var result=12+undefined;//NaN

2.数字+null

  var result=12+null;//12

3.数字+string

  var result=12+\'12\';//1212

4.boolean+null

  var result=true+null;//1

5.boolean+string

  var result=true+\'we\';//truewe

6.数字+数组

  var result=12+[1,2,3];//121,2,3

  []会被转换为原始值,先尝试valueOf()方法,返回数组本身,再调用toString()方法,返回字符串1,2,3;

7.数字+对象

  var result=12+{};//12[object Object]

  空对象{}被转换为字符串[object Object],数字也被转换为字符串,两个操作数再进行连接。

8.{}+{}

  var result={}+{};//[object Object][object Object]

  var result=\'b\'+{};//b[object Object]

  var result={}+\'b\';//[object Object]b

  var result={}+[];//[object Object]

 

以上是关于JavaScript的加号运算符的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript基础之算术运算符 前后增量/前后减量运算符 比较运算符逻辑运算符 程序流程控制

10个JavaScript代码片段,使你更加容易前端开发。

10个JavaScript代码片段,使你更加容易前端开发。

JS中的加号+运算符详解

为啥 F# 有一个一元加号运算符?

pycharm添加Odoo代码片段