在下面的代码中,
if (options.max) {
if (i <= options.max) $(x).addClass("hey");
}
else {
if (i >= options.min) $(x).addClass("no"); //<- this
}
从上面删除每个大括号 使得第二个子句(标有<- this
)不起作用。
if (options.max)
if (i <= options.max) $(x).addClass("hey");
else
if (i >= options.min) $(x).addClass("no"); //<- this
我认为JavaScript中的if语句的单个表达式可以在没有花括号的情况下使用。为什么会这样?
答案 0 :(得分:5)
如果删除花括号,else
适用于第二个if
,即:
if (options.max)
if (i <= options.max) $(x).addClass("hey");
else
if (i >= options.min) $(x).addClass("no"); //<- this
花括号需要确保else
应用于整个语句,但第二组可以删除,即:
if (options.max) {
if (i <= options.max) $(x).addClass("hey");
}
else
if (i >= options.min) $(x).addClass("no"); //<- this
另一种方法是用&&
运算符替换内部if语句,如下所示。
if (options.max)
i <= options.max && $(x).addClass("hey");
else
i >= options.min && $(x).addClass("no");
注意:这是有效的,因为如果&&
之前的操作数等于false,表达式将“短路”。