如何检查 3 个变量中的每一个是否都是空字符串?

How do I check if each of 3 variables are the empty string?

我有 3 个带文本的输入字段。我想使用带有逻辑运算符的 if 语句来检查是否有任何输入字段为空,但我不能对 3 个变量使用 or(||)。

逻辑运算符的正确使用方法是什么?

let name = $("#name").val();
let email = $("#email).val();
let color = $("#color).val();

if(name == '' && ( email == '' || color == '') {
  console.log("please complete form");
 }
else {
//submit data
}

如果我将名称字段留空,代码将按预期工作,但由于名称为真,if 语句接受它。我怎样才能让 if 语句检查是否有任何输入字段为空?

每个使用||

if(name === '' || email === '' || color === '') {

您不需要 () 分组,因为操作顺序无关紧要 - 您只想查看 任何 测试是否成功。

请注意,严格相等比较 (===) 几乎总是优于抽象相等比较 (==)。

因为 .val() 总是 returns 一个字符串,而您想检查空字符串,如果需要,您可以只检查该值是否为真:

if(!name || !email || !color) {

空字符串被视为 'falsy',这意味着在使用逻辑运算符时它被解释为 false。将这些知识与 !(非)运算符结合使用,我们可以这样做:

if(!name || !email || !color) {
  console.log("please complete form");
}

这种情况,用简单的英语来说,意思是 "if not name or not email or not color"

您有语法错误(忘记了 if 语句中的括号)。

let name = $("#name").val();
let email = $("#email).val();
let color = $("#color).val();

if(name == '' && ( email == '' || color == '')) {
  console.log("please complete form");
 }
else {
//submit data
}