我失去了相当多的时间,因为我改变了一个读取的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)
时,我没有想到这个含义。那么,有没有办法防止将来出现这种愚蠢的错误。
答案 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'.
当然,要为线条和字符制作此通用名称。你真正想要的是“回归后无法到达”。