JS 隐式转换笔记
比较运算
全等运算===
,只有在只会在操作符两侧的操作对象类型一致且内容一致时,才能返回 true
==
运算符会把操作符两边的对象转化同一类型,再进行比较。
对于 >=
等运算,则会首先转化为原始对象(Primitives),然后再进行对比。
对于(x == y
)主要规则如下
+ 如果任一值为 NaN 则 false
+ 两者皆为 null 或 undefined 中的一种,返回 true(undefined == null
返回 true),否则返回 false(undefined == 0 || null == 0
返回 false)
+ 如果两者类型不一致且是 String、Number、Boolean 中的某一类型,则调用 toNumber()
方法后,再进行比较。
+ 如果两者类型不一致且是对象类型,则调用ToPrimitive
函数将其转化为原始类型,再进行比较
ECMAScript 中还规定,如果 < 为 false,则 >= 为 true。 即
null < 0 //false
null >= 0 //true
## 加法
首先将操作符两侧的对象转换为 Primitive 类型 ,然后当适当的隐式类型转换能得出有意义的值的前提下,JavaScript 会先进行隐式类型转换,再进行运算
Comments