第一次来这里,我遇到了一个问题... idk,如果这是我的语法或我的逻辑是完全错误的...
var hasExperience;
var amountOfExperience;
function employed(hasExperience,amountOfExperience) {
if(hasExperience === true){
if(amountOfExperience > 5)
return true;
} else {
return false;
}
}
如果没有满足前两个if语句,似乎并不想返回false。有人可以提供帮助吗?
谢谢!
答案 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