[Javascript] 等号运算符的运算和转换规则
从上到下按照规则比较,直到能得到确切结果为止:
- 两端类型相同,比较值
- 两端存在 NaN,返回
false undefined和null只有与自身比较,或者互相比时,才会返回true- 两端都是原始类型,转换成数字比较
- 一端是原始类型,一端是对象类型,把对象转换成原始类型后进入第 1 步
对象如何转换原始类型?
- 如果对象拥有
Symbol.toPrimitive方法,调用该方法- 若该方法能得到原始值,使用该原始值
- 若得不到原始值,抛出异常
- 调用对象的
valueOf方法- 若该方法能得到原始值,使用该原始值
- 若得不到原始值,进入下一步
- 调用对象的
toString方法- 若该方法能得到原始值,使用该原始值
- 若得不到原始值,抛出异常

浙公网安备 33010602011771号