gpt4 book ai didi

Javascript 大括号奇怪的行为

转载 作者:行者123 更新时间:2023-11-28 13:36:52 28 4
gpt4 key购买 nike

在下面的代码中,

    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 语句的单个表达式可以在没有花括号的情况下使用。为什么会发生这种情况?

最佳答案

如果删除大括号,则 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,则表达式将“短路”。

关于Javascript 大括号奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20770941/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com