JS 中没有“else if”
语法不是开玩笑的......
语法不是开玩笑的......
确实,Javascript 的语法中没有 else if
语句。
你之前用过几次?为什么现在还能用?
我们总是这样编码:
function wow(arg){
if(arg === "dog"){
return "LOVELY";
}
else if(arg === "cat"){
return "CUTE";
}
else return "gimme an animal";
}
wow("cat");
//-> "CUTE"
但实际发生的情况是这样的:
function wow(arg){
if(arg === "dog"){
return "LOVELY";
}
else {
if(arg === "cat"){
return "CUTE";
}
else return "gimme an animal";
}
}
wow("cat");
这里发生了什么事?
从字面上看,我们正在使用一些关于{}
用途的隐式 JS 行为。
当我们使用else if
语句时,我们省略了{}
但是 Javascript 仍然有效,因为在这种情况下它不需要括号,就像在许多其他情况下一样!
...所以呢?
我写这篇文章并不是因为这件事真的很令人好奇。
我写这篇文章是为了让你思考所有好的部分或正确的编码方式,这迫使你以某种方式编写代码,有时这并不是最好的方式。
关于隐式和显式声明的内容有很多需要讨论,例如:强制、括号、分号......
但真理总是站在中间!
如果您只是遵循一些特定的规则...那么您就无法理解为什么要制定这些规则else if
,而这应该让您思考一下。
有多少次,您编写了代码,因为有人告诉您这样做,但您却对此一无所知?
我敢打赌,很多。
我并不是说我们不应该关心所有这些规则,也不是说我们应该了解所有的JS 文档。
我只是说,现在,你的职责是编写别人能够理解的好代码,并朝着这个方向努力……有些规则是可以的,但你应该知道为什么。
因为某人擅长代码,并不意味着你必须遵循他的黄金法则。
对他来说隐含的东西,对你和其他许多人来说可能就是明确的。
如果您对该特定参数没有相同的了解(并且不可能对代码的每个部分都有完全相同的了解程度),那么您有两个选择:
- 按照他告诉你的去做...如果有效的话。
- 出去看看原因
始终关心好的部分,但首先,始终关心你的知识,不要仅仅按照规则编写代码。
