JS 隐式转换笔记

比较运算

全等运算===,只有在只会在操作符两侧的操作对象类型一致且内容一致时,才能返回 true
== 运算符会把操作符两边的对象转化同一类型,再进行比较。
对于 >= 等运算,则会首先转化为原始对象(Primitives),然后再进行对比。

对于(x == y)主要规则如下
+ 如果任一值为 NaN 则 false
+ 两者皆为 null 或 undefined 中的一种,返回 trueundefined == null返回 true),否则返回 falseundefined == 0 || null == 0返回 false)
+ 如果两者类型不一致且是 String、Number、Boolean 中的某一类型,则调用 toNumber()方法后,再进行比较。
+ 如果两者类型不一致且是对象类型,则调用ToPrimitive 函数将其转化为原始类型,再进行比较

ECMAScript 中还规定,如果 < 为 false,则 >= 为 true。 即

null < 0 //false
null >= 0 //true

## 加法
首先将操作符两侧的对象转换为 Primitive 类型 ,然后当适当的隐式类型转换能得出有意义的值的前提下,JavaScript 会先进行隐式类型转换,再进行运算

Comments
Write a Comment