gpt4 book ai didi

javascript - 围绕 If block 的 JSLint 大括号

转载 作者:可可西里 更新时间:2023-11-01 02:41:32 25 4
gpt4 key购买 nike

在 Javascript 中,如果 if 表达式后面没有大括号,则将以下语句放在 if block 中。也就是说,

if(foo)
bar();
baz();

相当于

if(foo) {
bar();
}
baz();

Douglas Crockford 建议不要使用第一个,因为如果程序员试图在没有大括号的情况下向 if block 添加语句,它会造成混淆并且会导致难以追踪的错误。出于这个原因,如果您使用第一种形式,JsLint 会报错。

我一直在使用它,我觉得这不是问题,前提是您将该语句与 if 语句放在同一行,如下所示:

if(foo) bar();
baz();

这在视觉上比完整的括号形式更简洁,而且我从来没有对它感到困惑。为了让我可以通过 JsLint 而没有那么多视觉噪音,我有时会使用依赖于运算符短路的不那么惯用的形式,如下所示:

foo && bar();
baz();

你们可能都在等我快点问问题,那么就这样吧:如果格式正确,不在单行条件语句中使用大括号通常被认为是不好的做法吗?为什么? JsLint 是否有合理的理由提示它?

最佳答案

JSLint 检查您的代码是否为 Crockford 风格。它有一个分支叫做 JSHint这是可定制的,使用起来更不烦人。

这是一个验证良好的代码(除了可能很快会修复的 tiny bug :)

/*jshint curly: false */

var a = true;
function work() {
console.log('work');
}

if (a) work();

关于javascript - 围绕 If block 的 JSLint 大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6970873/

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