Javascript中嵌套if语句(函数内)的问题

时间:2018-10-15 05:01:57

标签: javascript if-statement nested

第一次来这里,我遇到了一个问题... idk,如果这是我的语法或我的逻辑是完全错误的...

var hasExperience;
var amountOfExperience;

function employed(hasExperience,amountOfExperience) {

  if(hasExperience === true){
    if(amountOfExperience > 5)
      return true;
  } else {
    return false;
  }
}

如果没有满足前两个if语句,似乎并不想返回false。有人可以提供帮助吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您需要两个if语句的评估结果都为true,则应这样编写:

if(hasExperience === true && amountOfExperience > 5){
  return true;
} else {
  return false;
}

在您的示例中,if(hasExperience === true)然后在if块中运行代码,else在else块中运行代码。重要的是要了解这完全独立于if块中的内容。

if(hasExperience === true){
    // code inside if block
} else {
    // code inside else block
}

if块中的代码恰好是另一个if return true的{​​{1}}语句,否则不执行任何操作。同样,这独立于其他if(amountOfExperience > 5)语句。

if

使用if(amountOfExperience > 5) return true; 意味着两个语句必须求和为&&才能执行true块内的代码。您可以在此处了解更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators


此外,正如其他人所述,您可以像这样编写函数:

if

由于您将function employed(hasExperience,amountOfExperience) { return hasExperience === true && amountOfExperience > 5; } 评估为布尔值并返回了该布尔值,因此可以完全避免使用(hasExperience === true && amountOfExperience > 5)语句。

尝试多做一些实验,以了解发生了什么。


根据评论进行更新:

您也可以使用嵌套的if来完成此操作,但这会使代码混乱并且难以阅读。

if