我不明白为什么这个声明没有通过并打印我的成功信息。
A是真的,B和C都是假的......这里的问题是什么?
var A = true;
var B = false;
var C = false;
if(A && (B && C === false)){
console.log('success');
}
答案 0 :(得分:2)
评估出来:
(true && (false && (false === false))
(true && (false && (true))
(true && (false))
(true && false)
(false)
答案 1 :(得分:1)
因为你将B传递为真。以下应该可以正常工作:
if(A && (B === false && C === false)){
console.log('success');
}
但是,你可以使用这样的速记:
if(A && !B && !C){
console.log('success');
}
答案 2 :(得分:1)
B && C === false
不等同于B === false && C === false
,而是相当于B == true && C === false
。
所以,你的整个陈述相当于:
A == true && B == true && C === false
答案 3 :(得分:0)
因为b是假的。
您只是将c与false进行比较
答案 4 :(得分:-1)
正如其他人所指出的那样,B被设置为false,但你正在检查它是否属实。一个很好的选择是:
if(A && !(B && C){
console.log('success');
}
这说"是真的,是B还是C 不是真的?"
如果您想将B设置为true,那么您的if将如下所示:
if (A && B && !C) {
console.log('success');
}