多个逻辑或运算符和比较运算符一起使用共同作为条件判断的问题

var username = "gaolf"; var password = "123456"; var email = "gaolf@brophp.com"; var phone = "010-7654321"; if( username == "gaolf" && password == "123456" ) { alert( "用户名和密码输入正确"); } if( username == "" || password == "" || email == "" || phone == "" ) { alert( "所有的值一个都不能为空"); } if( (isset(email) && !empty(email)) || (isset(phone) && !empty(phone)) ) { alert( "最少有一种联系方式"); }

其中:
if( username == "" || password == "" || email == "" || phone == "" ) {
alert ("所有的值一个都不能为空");
}
if条件用布尔值相对应的表示是if(false || false || false || false) 也就是条件的操作结果是false时,输出"所有的值一个都不能为空";
假设写成这样:
var username = "gaolf";

var password = "";

var email = "gaolf@brophp.com";

var phone = "";

if条件用布尔值相对应的表示是if(true || false || true || false) 此时条件的操作结果是true,不应该输出"所有的值一个都不能为空"; 实际运行后输出了"所有的值一个都不能为空";的语句。
初学JavaScript,此处不理解,请各位老师指点、解释一下,万分感谢!

if(false || false || false || false) 也就是条件的操作结果是false时,输出"所有的值一个都不能为空";
if条件用布尔值相对应的表示是if(true || false || true || false) 此时条件的操作结果是true,不应该输出"所有的值一个都不能为空";

楼主理解错了,if(false || false || false || false) ,条件判断为if(false)就不执行花括号里的内容,如果条件为true就执行花括号内容。

username = "gaolf";怎么能使得username == ""为true????,明明是false

if( username == "" || password == "" || email == "" || phone == "" ) {
alert ("所有的值一个都不能为空");
}
这个输出没有问题,因为你使用的或运算符,只要有一个为空就会执行你的输出语句,而你的代码中确实有为空的。

那就说明你if判断结果为false

谢谢各位老师的指点!非常感谢!

if条件语句的条件我理解错了,应该是当给出的四个变量为空时条件成立,条件的操作结果是true,就输出"所有的值一个都不能为空";
当给出的四个变量都有值时条件的操作结果是false,就不输出"所有的值一个都不能为空";当有一个变量为空时,该变量在此条件中是true,这时条件的操作结果是true,就输出"所有的值一个都不能为空";
谢谢各位老师的指点!万分感谢!