虽然试图完全理解平等运营商和身份运营商之间的区别,我碰到一个前来文章在MSDN,说明他们都这样做,在他们的内部运作方面,但我仍然有一些疑惑,并决定建立一个流程图,所以我可以有更好的画面.现在我的问题是,这个流程图是否正确?还是我错过了什么?
我的理解是,身份运算符(===)的工作方式几乎相同,但在第一步中没有尝试将A和B转换为布尔值,数字或字符串.那是对的吗?
你也可以在这里看到图像:

好的,这是真实的,这是一个原则问题;)

这个流程图正确吗?
不可以。您应该使用抽象相等比较算法的 ECMAScript 规范来创建流程图。ToBoolean当然不是第一步(它没有在任何步骤中使用)。
或者我错过了什么?
是的很多。
据我了解,恒等运算符 (===) 的工作方式几乎相同,但第一步不会尝试将 A 和 B 转换为布尔值、数字或字符串。那是对的吗?
严格相等比较算法与抽象相等比较算法几乎相同,仅当参数类型不同时才有区别,在这种情况下,在进行比较之前有一个精确的顺序使类型相等。