【发布时间】:2019-03-20 12:17:55
【问题描述】:
运算符右侧是否强制转换为左侧类型?
number == string -> number == number
双方是否都转换为相同的底层类型,比如数字?
boolean == string -> number == number
每个运营商*-/+||&&%有不同的规则吗??
我查看了其他不清楚且令人困惑的问题/答案。
【问题讨论】:
-
转换成什么类型有关系吗?重要的是
==标准化为可比较的类型。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
这很重要...@AvinKavish 例如,要知道这是否正确,您需要知道发生了什么,例如首先将值转换为什么。
fasle == "0"如果它们首先被转换为数字,那么它是真的0 == 0否则它们被转换为布尔值那么它是false == true因为字符串是真的 -
@AvinKavish——是的,请参阅Abstract Equality Comparison algorithm。
-
好吧,我明白了,这对我来说从来都不是问题,因为我总是使用严格比较和显式类型转换。
-
如果您总是阅读自己的代码,那没关系,如果您正在阅读其他人的代码,那么您最终会遇到使用
==的情况。面试中也会问这个问题
标签: javascript