我可以防止JavaScript中的愚蠢错误,因为该语言不需要分号吗?

时间:2011-09-07 18:03:00

标签: javascript

我失去了相当多的时间,因为我改变了一个读取的JavaScript函数(类似的东西)

function F(a,b,c) {

    return x(a,b,c) +
           y(a,b,c) + 
           z(a,b,c);
}

function F(a,b,c) {

    return // x(a,b,c) +
           y(a,b,c) + 
           z(a,b,c);
}

当我需要测试时。

当然,更改的函数返回undefined,因为该语言不需要分号,并假定return是完整的语句。

不幸的是,当我评论x(a,b,c)时,我没有想到这个含义。那么,有没有办法防止将来出现这种愚蠢的错误。

4 个答案:

答案 0 :(得分:8)

懒惰调试器的解决方案:

function F(a,b,c) {
    return (
      // x(a,b,c) +
      y(a,b,c) + 
      z(a,b,c)
    );
}

答案 1 :(得分:6)

JSLint和单元测试框架。

Problem at line 3 character 11: Expected ';' and instead saw 'y'.

答案 2 :(得分:5)

return分号插入尤其令人讨厌。针对此案例的解决方法:不要return多行语句。

function F(a,b,c)
{
    var toReturn x(a,b,c) +
           y(a,b,c) + 
           z(a,b,c);

    return toReturn;
}

答案 3 :(得分:2)

JSLint集成到您的构建中,并在检测到

时失败构建

Problem at line 7 character 12: Unreachable 'y' after 'return'.当然,要为线条和字符制作此通用名称。你真正想要的是“回归后无法到达”。