2011-10-30 21 views
1

编辑:Syntastic配置为使用的JSLintSyntastic Vim中声称的功能可能无法返回

EDIT2:我使用JavascriptLint,不JSLint的

在下面的代码syntastic警告function inside does not always return a value

function(){ 
switch(age){ 
case 1: 
    return 'won'; 
case 2: 
    return 'too'; 
case 3: 
    return 'tree'; 
default: 
    throw 'wow man, you are old!'; 
    break; //technically redundant 
} 
} 

我知道default不会返回一个值,但throw会结束执行。这是一个Syntastic错误,还是应该改变我的编码风格?我应该在throw之后发出return声明吗?

+0

Syntastic只是使用GCC进行语法检查。如果你使用'-Wall'编译GCC,你会得到同样的警告吗? –

+0

我构建了我的合成器以使用jslint(描述[here](http://stackoverflow.com/questions/7926356/how-do-i-get-a-syntax-check-to-work-in-with-vim ))。 – puk

+0

如果我使用'jsl -process',我会遇到同样的问题。 C/C++不是'gcc'吗? – puk

回答

2

句法使用JSLint在引擎盖下检查Javascript语法。

为了避免错误,JSLint被认为是过于谨慎的。您可以忽略该信息以更好地判断,或者关闭此特定警告,或者在那里添加冗余return

就我个人而言,我更愿意满足JSLint关闭警告的要求。只要确保在return附近添加//Satisfying JSlint评论,以便其他人将了解冗余。

+0

谢谢。我也注意到JSLint过于谨慎。例如,当'++'被用作像'var x = 0; flags = {a:x ++,b:x ++,c:x ++ ...}'这样的更大语句的一部分时,它会抱怨 – puk

+0

有没有办法关闭JSLint中的警告,只是为了这段代码?我见过许多具有这种功能的静态分析工具... –

+1

其实,找到我自己的答案:是的,它确实 - http://stackoverflow.com/questions/599859/jslint-control-comments-selective-ignore –