加号操作符
预计 3 分钟
加法操作符的规则:
- 如果操作符中有一个是对象,将其转换为原始值
- 如果操作数中有一个是字符串,将另一个也转换为字符串,然后连接
- 其他情况下,将两个操作数转换为数字并执行加法运算
首先看一下第一条规则,如果操作符中有一个是对象,将其转换为原始值,那么,是如何转换的呢?
- 如果对象是
Date
类型的话,使用toString()
转换为字符串 - 其他对象的话会先调用
valueOf()
,如果返回的是一个原始值得话,则使用这个原始值,否则进入第三部 - 调用
toString()
方法
好了,我们再看几个例子
例子1
[1, 2, 3]
是一个对象,因此先调用 valueOf()
,但 函数返回的是数组本身,不是一个原始值,因此再调用 toString()
,返回字符串'1,2,3'
。
此时表达式变为 '1,2,3' + 4
,此时使用第二条规则,将数字4
转化为字符串'4'
。
此时表达式变为'1,2,3' + '4'
,结果为1,2,34
。
例子2
[]
转换为字符串''
,1
转换为'1'
,因此结果为'1'
例子3
执行第三条规则,true
转换为1
#前端
#JavaScript