Javascript console.log()语句中的布尔条件

Javascript console.log()语句中的布尔条件,javascript,console.log,Javascript,Console.log,我刚刚注意到,您可以在console.log中放置布尔表达式,例如console.log(“hey”| | 2),在这种情况下,hey将打印到控制台窗口 我不能100%确定console.log在有条件时如何确定打印内容。JavaScript中有一个概念和值。非空字符串被视为真实值,因此“hey”的计算结果为true,并被打印出来,因为在这种情况下,|后面的部分不会被计算 一般来说,truthy是所有非false、0、”、null、未定义或NaN的值 定义或表达式的计算,如下所示: 逻辑OR(|

我刚刚注意到,您可以在console.log中放置布尔表达式,例如
console.log(“hey”| | 2)
,在这种情况下,
hey
将打印到控制台窗口

我不能100%确定console.log在有条件时如何确定打印内容。

JavaScript中有一个概念和值。非空字符串被视为真实值,因此
“hey”
的计算结果为
true
,并被打印出来,因为在这种情况下,
|
后面的部分不会被计算

一般来说,truthy是所有非
false
0
null
未定义
NaN
的值

定义或表达式的计算,如下所示:

逻辑OR(
| |
expr1 | | expr2
:如果可以转换为,则返回
expr1
是的;否则,返回
expr2
。因此,当与布尔值一起使用时,
| |
如果任一操作数为true,则返回true;如果两者都为false,则返回 错


因此,根据这个逻辑,
console.log()
在语句中打印第一个truthy表达式。如果您尝试
console.log(null | | 2)
,则将打印出
2

最简单的说,当表达式中存在逻辑运算符时,它将尝试计算整个表达式-并且由于“| |”表示“或”,当计算“hey”时,它返回
true
,因此,无需进一步计算表达式。

如果a值为falsy(false、undefined、0、NaN和“”),则它将采用右侧值。否则它将获得a本身的打印

var a = null;

console.log(a || 10); //10 will print


好吧,让我试着把我的两分钱加在博胡斯拉夫的解释上。。。如果您想看到一个很好的实践示例,请查看本书中的以下练习:

“嘶嘶作响

编写一个程序,使用console.log打印从1到100的所有数字,但有两个例外。对于可被3整除的数字,打印“Fizz”而不是数字;对于可被5整除(而不是3)的数字,打印“Buzz”

当你有工作,修改你的程序打印“嘶嘶”的数字,可以被3和5整除(仍然打印“嘶嘶”或“嘶嘶”的数字只能被其中一个整除)


for(var n=1;n如果| |左侧的表达式解析为真实的内容,它将被打印,如果右侧的表达式未被打印,它将被打印。不完全-这不是因为它是空的,而是因为它被认为是虚假的。
未定义
0
NaN
也被认为是错误的,在这种情况下会导致打印右侧
var a = 20;

console.log(a || 10);//20 will print