为什么 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
我正在尝试了解以下情况:
> "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