关于加法的类型转换
数字+ 一切
数字+基本类型:除了字符,其他换尝试把, 被加数-->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} 也被视为代码块,但出现语法错误,直接报错
字符+一切:字符
如果加法前后中的一边是字符,会尝试将另一个边转化成字符串,然后变成了字符拼接