它是如何工作的例子;
let x;
console.log(x || 2); // 2
如果
let x = 4;
console.log(x || 2); // 4
如果
let x = 5;
let y = 7;
console.log( y || x || 2);
这意味着console.log()写的第一个值是真的吗?
答案 0 :(得分:5)
您所看到的内容与console.log
无关。它被称为short circuiting.
将值与||
进行比较时,它将始终返回第一个truthy值。如果没有真值,它将返回最后一个被比较的值。
let a = false || true;
let b = false || null || 'b';
let c = undefined || !a || 10;
let d = undefined || false || null; // no truthy values
console.log(a); // true
console.log(b); // 'b'
console.log(c); // 10
console.log(d); // null
答案 1 :(得分:1)
let x = 5;
let y = 7;
console.log( y || x || 2); //return 7
expr1 || expr2
如果可以转换为true,则返回expr1
;否则,返回expr2
。因此,当与布尔值一起使用时,||如果任一操作数为真,则返回true。
文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators