Javascript 为什么';这个IF语句是否返回控制台消息?
我不明白为什么这个声明没有通过并打印我的成功消息 A是真的,B和C是假的。。。这里有什么问题Javascript 为什么';这个IF语句是否返回控制台消息?,javascript,Javascript,我不明白为什么这个声明没有通过并打印我的成功消息 A是真的,B和C是假的。。。这里有什么问题 var A = true; var B = false; var C = false; if(A && (B && C === false)){ console.log('success'); } 因为你通过的B是真的。以下几点应该很好: if(A && (B === false && C === false)){
var A = true;
var B = false;
var C = false;
if(A && (B && C === false)){
console.log('success');
}
因为你通过的B是真的。以下几点应该很好:
if(A && (B === false && C === false)){
console.log('success');
}
但是,您可以这样使用速记:
if(A && !B && !C){
console.log('success');
}
对其进行评估:
(true && (false && (false === false))
(true && (false && (true))
(true && (false))
(true && false)
(false)
因为b是假的
您仅将c与false进行比较
B&&c==false
不等同于B==false&&c==false
,而是等同于B==true&&c==false
因此,你的整个陈述相当于:
A==true&&B==true&&C==false
正如其他人指出的,B被设置为false,但您正在检查它是否为true。一个好的选择是:
if(A && !(B && C){
console.log('success');
}
这表示“A是真的,B或C不是真的吗?”
如果要将B设置为true,则If将如下所示:
if (A && B && !C) {
console.log('success');
}
如果(A&&!B&&!C){在语法上无效,则应该是
。=
用于赋值,而不是=
@MattBall对不起,更正了。你的意思是“因为你将B传递为false吗?”