关于加法的类型转换

数字+ 一切

数字+基本类型:除了字符,其他换尝试把, 被加数-->toNumber

数字+number=数字

数字+boolean=数字

数字+null=数字

数字+undefined=NaN

数字+string=string

数字+引用类型:被加数--》toString

数字+array = string

数字+object = string, 需要注意,如果对象在+前面,对象被视为代码块,+数字=数字

数字+function = string

对象+一切:

对象在+前面,对象会被视为代码块,即使有值对,,即{...};,结果就是代码块执行完, 剩下    +一切,也就是 实际只是执行  一切toNumber

如:

{} +2                    =>          {}; +2              =>        +2          =>             +2=2

{a:2} +true           =>          {a:2} +true     =>         +true     =>              +true=1

{a:2,v:2}+true      =>       {a:2,v:2} 也被视为代码块,但出现语法错误,直接报错

字符+一切:字符

如果加法前后中的一边是字符,会尝试将另一个边转化成字符串,然后变成了字符拼接

原文地址:https://www.cnblogs.com/baixinL/p/15077763.html