【发布时间】:2017-12-07 03:57:40
【问题描述】:
在 javascript 中,String(true) == "true" 评估为 true,Boolean("true") == true 评估为 true,那么为什么 "true" == true 评估为 false?
【问题讨论】:
-
不按照你的逻辑...为什么要这样做?
-
因为 JavaScript?
-
也许你对使用
Boolean("true")感到困惑,因为Boolean("false")也返回true。 -
根据MDN 的布尔文档:"如果该值被省略或为 0、-0、null、false、NaN、未定义或空字符串 (""),该对象的初始值为 false。如果将 DOM 对象 document.all 作为参数传递,则新的布尔对象的初始值也为 false。所有其他值,包括任何对象或字符串“false” ,创建一个初始值为true的对象。"
-
注意,你已经把类型强制的结果扔掉了。
标签: javascript types casting