【发布时间】:2018-08-04 00:07:01
【问题描述】:
我的问题与三个链接有关(下面三个链接中的代码截图和解释):
List of values which, when converted to boolean, are evaluated as false
First and Second code boxes (see below)
Third code box and explanation (see below)
我的问题有几个部分:
(第一个代码框)
var boo如何以及为什么等于'world'而不是'hello'?根据第一张图片,这两个值都应该被评估为true,那么为什么它们中的任何一个都等于boo?(第二个代码框) 这比前一个更有意义。但是,为什么等式的结果默认为等式的
true部分而不是false?-
(第 3 个代码框) 现在这非常令人困惑。我试图理解代码框下方的解释,但我无法弄清楚其中的原因。通过解释:
一个。第一行中的
myNumber = false:这部分是有道理的,因为值"1",由于逻辑运算符!,被转换为布尔值,这使得它改为:true。因此,!1在布尔值中的意思是:!true(不正确),这是错误的。b.
myNumber !=== null,因为它等于false。这就是令人困惑的地方。null不能等于false的唯一方法是,如果null不是此特定代码行中的值(请参阅第一个链接,它在评估为false的值列表中列出了null)。在解释中,它说 “在 if 语句中,在第 3 行,false 不等于 null。” 这似乎是自相矛盾的。c。
myNumber === false,因此它的值是2。在这里,它再次给变量true值,而不是仅仅说变量是false(“再次”是对链接#2 - 2nd code box 的引用)这是为什么??
提前感谢您的帮助!
贝塞米克
【问题讨论】:
-
请勿发布代码图片。编辑您的问题并添加代码本身。
-
谷歌“javascript truthy”了解被认为是真实和虚假的内容,然后谷歌“javascript Triple equal”了解
==和===的工作原理 -
感谢李泰勒的信息!这是我的第一个问题,所以下次我会记住这一点。
标签: javascript boolean expression implicit-conversion