Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript console.log()中的运算符| |像| |运算符一样工作?_Javascript - Fatal编程技术网

Javascript console.log()中的运算符| |像| |运算符一样工作?

Javascript console.log()中的运算符| |像| |运算符一样工作?,javascript,Javascript,例如,它是如何工作的 let x; console.log(x || 2); // 2 如果 如果 这意味着console.log()写入第一个为真的值?您看到的与console.log无关。它叫 将值与| |进行比较时,它将始终返回第一个值。如果不存在真实值,它将返回要比较的最后一个值 设a=false | | true; 设b=false | | null | | | b'; 设c=未定义| |!a | | 10; 设d=undefined | | false | | null;//没

例如,它是如何工作的

let x;
console.log(x || 2); // 2 
如果

如果


这意味着console.log()写入第一个为真的值?

您看到的与
console.log
无关。它叫

将值与
| |
进行比较时,它将始终返回第一个值。如果不存在真实值,它将返回要比较的最后一个值

设a=false | | true;
设b=false | | null | | | b';
设c=未定义| |!a | | 10;
设d=undefined | | false | | null;//没有真实的价值观
console.log(a);//真的
控制台日志(b);/'b'
console.log(c);//10
console.log(d);//空
expr1 | | expr2
如果可以转换为true,则返回
expr1
;否则,返回
expr2
。因此,当与布尔值一起使用时,如果任一操作数为真,则返回真


文档:

不,这是
|
的工作原理。它与
控制台.log()无关。
|
运算符仅返回左操作数的值(如果是真的),否则返回右操作数的值
console.log()
只是接收并记录返回的值。我不确定我会调用正确的复制目标,因为误解是短路,而不是
0==false
。如果第一个值是truthy,它将返回第一个truthy值。如果第一个值不是,那么不管它是否真实,它都返回第二个值。@Quentin Very true。最好澄清我的答案。
let x = 4;
console.log(x || 2); // 4
let x = 5;
let y = 7;
console.log( y || x || 2);
let x = 5;
let y = 7;
console.log( y || x || 2); //return 7