JavaScript 有两种比较方式:严格比较运算符和转换类型比较运算符。对于严格比较运算符(===)来说,仅当两个操作数的类型相同且值相等为 true;而对于被广泛使用的比较运算符(==)来说,会在进行比较之前,将两个操作数转换成相同的类型。

== 隐式转换顺序:

x == y

左右两边类型一样(type(x) === type(y)),不做隐式转换。 左右两边类型不一致,就会进行隐式转换。先调用 valueOf 转成 Number 类型,不能转成数字的话,再调用 toString转成字符串。