JavaScript是弱类型语言,所以就存在很多隐式转换。
转换规则:
1、undefined == null,结果为true, 且他两与所有其他值比较的结果都是false
2、String == Boolean 需两个操作数同时转为Number
3、String/Boolean == Number 需String/Boolean转为Number
4、Object == Primitive ,需要Object转为Primitive(具体通过valueOf和toString方法)。
需要注意:
Number(null) // 0
Number() // 0
Number('') //0
Nunmber(0) // 0
Number('0') // 0
Number(undefined) // NaN