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