对于此示例代码,它将两次在控制台中输出“ Hello”:
var x = 10;
if ( (null) || (console.log("Hello")) || x > 5 ) {
console.log("Hello");
}
我假设当读取“ if”语句时,它将读取console.log,然后将其打印出来,并且由于x> 5,return语句为true,然后对第二个“ Hello”进行控制台。
有人可以告诉我这是否正确吗?谢谢!
答案 0 :(得分:4)
您的功能:
设置变量,其值为var x = 10
检查条件,直到其中一个条件为“ true
”(返回
true
)
(null)
返回自身,因此函数检查其他条件 (console.log("Hello"))
不返回任何内容(null
),因此该函数
检查其他情况
x > 5
返回true
,因此发生了if{ < code > }
内部代码的执行
(console.log("Hello"))
内部的if{ }
执行。如您所见,在检查(console.log("Hello"))
语句内的条件以及执行该if
的“内部”时,都执行了if
。这就是为什么您看到“ Hello”记录了2次的原因。
答案 1 :(得分:0)
console.log的返回类型为undefined。
您两次看到console.log输出,因为您已经两次调用它:
在if条件中一次,在if语句中下一个。
您的if语句将运行,因为您使用的是OR,并且x = 10> 5
答案 2 :(得分:0)
if
语句首先遇到null
,它是错误的,然后是console.log()
,它返回undefined
,所以它也是false,最后是x > 5
,这是真的。因此if
语句为true,它进入正文并进行另一次打印。
答案 3 :(得分:0)
我假设当读取“ if”语句时,它将读取console.log,然后将其打印出来,并且由于x> 5,return语句为true,然后对第二个“ Hello”进行控制台。
更准确地说,null
为“假”,因此将评估||
运算符的权限。执行第一个console.log()
。依次返回undefined
,它也是“假”,并计算下一个||
的下一个操作数。 x>5
的值为true
,因此第二个console.log()
被执行。
请注意,这不是编写代码的好方法。 console.log()
不应在这样的if
条件内使用。它的返回值没有意义,因为它总是返回undefined
。
答案 4 :(得分:0)
您编写的第一个console.log在if语句中,当评估if语句时将调用该函数。如果满足if语句中的条件,则将调用第二条语句。 console.log本身返回未定义,并且没有实际用途要包含在if语句中。我建议删除它,因为我不认为它可以实现您的预期 祝你好运:)