为什么"undefined"== undefined不正确?

aja*_*221 5 javascript equality undefined

==运营商是非常有趣的.它通常不会像人们想象的那样表现.

这让我直接调查冰山一角下发生了什么,根据MDN,它如下:

如果两个操作数的类型不同,则JavaScript转换操作数,然后应用严格比较.如果操作数是数字或布尔值,操作数将尽可能转换为数字; 否则,如果任一操作数是字符串,则另一个操作数将转换为字符串(如果可能).如果两个操作数都是对象,则JavaScript比较内部引用,当操作数引用内存中的同一对象时,这些内部引用相等.

(资源)

那么,为什么不"undefined" == undefined评估为真呢?

undefined应该转换为"undefined"然后根据此描述返回true?

Jon*_*n M 20

"undefined"有价值.这是9个字母:undefined.因此,字符串"undefined"并不能有一个明确的值.一个String在JavaScript 可以有一个明确的值,但这里的String对象有一个定义的值恰好拼出"不确定".

使用您提供的解释,undefined右侧的值将转换为String没有赋值的对象,然后与String"未定义"进行比较,从而无法进行比较.