为什么 javascript 比较 ("true" == true) 是假的?

Why javascript comparison ("true" == true) is false?

我正在尝试了解以下情况:

> "1" === 1
false

> "1" == 1
true

> true === 1
false

> true == 1
true

> "true" === true
false

> "true" == true
false

为什么 javascript 比较 ("true" == true) 是假的?

另外,比较这个的正确方法是什么?

问题已在 here 之前提出。

本质上,"true"被转换为NaN,而true被转换为1(这是一个布尔值。因此,它们是不同的。

比较中的布尔值将隐式转换为数字 (0/1),因此 1=true 变为 true,但 "true" == true (1),因此字符串不能等于 Number,则为 false