在 Javascript 中,如果if
表达式后面没有大括号,下面的语句放在if
堵塞。那是,
if(foo)
bar();
baz();
相当于
if(foo) {
bar();
}
baz();
Douglas Crockford 建议不要使用第一个,因为它会令人困惑,并且如果程序员尝试将语句添加到if
不带大括号的块。因此,如果您使用第一种形式,JsLint 会发出抱怨。
我一直使用这个,我觉得只要你把声明放在与if
声明,像这样:
if(foo) bar();
baz();
这在视觉上比完整的括号形式更简洁,而且我从未对此感到困惑。为了能够通过 JsLint 并且不会产生太多视觉噪音,我有时会使用一种不太惯用的形式,这种形式依赖于运算符短路,如下所示:
foo && bar();
baz();
你们可能都在等我快点问问题,所以这里是:如果格式正确,在单行条件语句上不使用大括号通常被认为是不好的做法吗?为什么? JsLint 是否有合理的理由对此进行抱怨?
JSLint 检查您的代码是否是 Crockford 风格的。它有一个分支叫做JSHint http://jshint.com/这是可定制的并且使用起来更不那么烦人。
这是一个验证良好的代码(除了tiny bug https://github.com/jshint/jshint/issues/152这可能很快就会得到解决:)
/*jshint curly: false */
var a = true;
function work() {
console.log('work');
}
if (a) work();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)