为什么===在Javascript中有一些奇怪的行为?

sta*_*tor 1 javascript

我正在提出这个代码学院课程中提出的问题.提前感谢您的解释.

希望这不会经常重复.

--------下面添加了课程说明----------------

您可能已经注意到我们到目前为止使用了两种类型的等号,单个等于(=)和双等或三等于(==,===).单个等于(=)分配一个变量,而double和triple等于(==,===)用于检查值之间的等价性.由于==在JavaScript中可能有一些奇怪的行为,因此使用===几乎总是更好.

运行此练习以查看它的作用.它首先将变量字设置为字符串"this".更改代码,使word ==="that"的计算结果为true,并运行console.log()命令.

nnn*_*nnn 6

===如果两个操作数是相同的类型并且具有相同的值,则三等于返回true.

==如果两个操作数都可以强制转换为相同的类型(遵循一组特定的规则)并且在强制后具有相同的值,则double equals 返回true.

所以,举一些例子:

1 === 1       // true
1 === "1"     // false
1 == 1        // true
1 == "1"      // true
"5" == 2 + 3  // true
0 == ""       // true
0 === ""      // false
null == undefined      // true
null === undefined     // false
Run Code Online (Sandbox Code Playgroud)