我在一些代码中看到了以下内容。是否有必要||假?如果有必要,怎么做?
object.key = myData ? myData.value : false || false;
答案 0 :(得分:4)
?
是三元运算符
:
分隔三元运算符的输出状态
||
通常是OR运算符,但在这种情况下,我认为它旨在用作合并运算符
= myData ? myData.value : false
...将从myData返回值,因为它不为null;否则返回false。
false || false
...总是会返回false。
= myData || false
...如果不是null,则返回myData,否则返回false。
如果我不得不猜测,我想原来代码可能是这样编写的:
= myData.value || false
......在他们意识到他们需要一个非空对象来获取value
之前。
也许他们的意思是
= (myData ? myData.value : false) || false;
...如果myData.value为非null,则返回myData.value,如果myData或myData.value为null,则返回false。
但如果这就是你想要的话我会写出来
= myData ? myData.value || false : false;
答案 1 :(得分:1)
只有在需要假名值false
时才有意义,而不是假名值。
但这需要括号来实现。
var myData;
console.log(myData ? myData.value : false || false); // false
console.log((myData ? myData.value : false) || false); // false
myData = {};
myData.value = undefined;
console.log(myData ? myData.value : false || false); // undefined
console.log((myData ? myData.value : false) || false); // false
myData.value = 0;
console.log(myData ? myData.value : false || false); // 0
console.log((myData ? myData.value : false) || false); // false
myData.value = '';
console.log(myData ? myData.value : false || false); // ''
console.log((myData ? myData.value : false) || false); // false
myData.value = 'foo';
console.log(myData ? myData.value : false || false); // foo
console.log((myData ? myData.value : false) || false); // foo
myData.value = true;
console.log(myData ? myData.value : false || false); // true
console.log((myData ? myData.value : false) || false); // true

答案 2 :(得分:0)
我非常确定" false ||假"这里不需要。但是,以下表达式更有意义。
object.key = (myData ? myData.value : false) || false;
使用'或'将值(可以是真或假)与false进行比较。因此,在myData.value不是真正的情况下,对象键将被设置为' false'。
答案 3 :(得分:0)