Javascript console.log()语句中的布尔条件
我刚刚注意到,您可以在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(“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