上下文是JavaScript。我刚刚追踪了两个难以找到的错误。
在一个案例中,写了
for (var k in items) {
item = items[k]
...所以var
之前遗失的item
导致window
的{{1}}方法被破坏。
在另一种情况下,写了
item()
... parent = this.parentOfRow(row);
之前遗失的var
导致parent
的{{1}}成员混乱。
这两个错误在很多步之后都可见。
现在有人通过某种“监视工具”获得警告吗?
答案 0 :(得分:1)
我认为良好的第一个行动方针是"use strict"
,enables strict mode。这将导致丢失var
个错误:
'use strict';
var items = { a: 'b', c: 'd' };
for (var k in items) {
item = items[k]
}

答案 1 :(得分:1)
AFAIK JShint(http://jshint.com/)会在您通过不使用var关键字暗示隐式全局变量时发出警告。
function main() {
myVariable = 15;
return myVariable;
}
main();
这将抛出一个JS提示错误,通知您myVariable未定义。注意这些错误可以防止污染全局命名空间。
答案 2 :(得分:1)