jsLint Expected {

jsLint Expected {

本文关键字:Expected jsLint      更新时间:2023-09-26

给定以下

for(var i=0; i< data.cats.length; i++) list += buildCategories(data.cats[i]);

jsLint告诉我

Expected '{' and instead saw 'list'.

使用较短的表示法而不是用大括号将其包裹起来,是否有实际的缺点?

这是一种防御性编程——使用花括号可以清楚地定义哪些语句要与for关联。

如果不使用花括号,以后可能会有人错误地在list += buildCategories...下面添加另一条语句,期望它也能用for循环执行。

"使用较短的符号有实际的缺点吗…"

如果你对编码不小心,这可能是错误的来源,但省略它们可以提供更干净的代码IMO,如果你坚持一致且经过深思熟虑的编程标准,省略它们不会成为问题。

例如,当我嵌套了能够排除大括号的if/else语句时,我更喜欢平衡else,而不是使用大括号。

if (condition)
    if (condition2)
        inner_if()
    else ;
else
    outer_if()

那个代码仍然比这个IMO.…更干净

if (condition) {
    if (condition2) {
        inner_if();
    }
} else {
    outer_if();
}

如果有人认为他们可以在ifelse中添加另一条语句,那么这是一个需要解决的理解问题。

所以实际上,这只是一个使用什么标准的问题。利用大括号当然是一个有效的选择,但我们不应该对此过于教条


如果您想要一个更可配置的工具,可以考虑使用jsHint.com。

JSLint检查以下良好的代码样式。插入大括号总是一种很好的风格,因为它很清楚代码的归属。而且它更短并不是一个真正的参数,因为大多数迷你程序都会处理这个问题。