【发布时间】:2013-09-23 00:27:38
【问题描述】:
在 javascript 中,我对嵌套的 if 的 elses 感到困惑
当 JS 编译器/引擎需要解释此代码时
if (cond1)
if (cond2)
statement1
else
statement2
(不是故意缩进的)
会这样解释吗?
if (cond1) {
if (cond2) {
statement1
}
}
else {
statement2
}
还是这样?
if (cond1) {
if (cond2) {
statement1
}
else {
statement2
}
}
问题是:'else' 对应于第一个还是第二个'if'?
我也想知道这个解释问题是否有一些名称(如“运算符优先级”)(我确定它有)。我在互联网上找不到这个问题,因为我不知道如何通过它的名称搜索它。
这可能有点明显,但我要说:我问javascript是因为我现在正在使用它,但这个问题几乎可以是任何程序语言。
【问题讨论】:
-
我的建议是写出来,
alert(line_number)只是为了验证,但我相信这将是第二个 if 语句 -
这是一本教科书示例,说明为什么要始终使用大括号。提供大括号时绝不会有任何歧义,也绝不会有任何机会让维护您的代码的人意外地通过简单的编辑将其搞砸,因为他们没有意识到您的意图。
标签: javascript algorithm if-statement procedural-programming