【发布时间】:2014-04-08 10:59:38
【问题描述】:
请考虑以下代码。
以下是根据JSLint或JSHint完全有效的Javascript代码:
function fun() {
"use strict";
var myvar = "";
myvar.foo();
}
以下不是:
function fun() {
"use strict";
var myvar = "";
foo();
}
为什么 JSLint(或 JSHint)没有检测到 myvar.foo() 之前没有声明,而它检测到 foo() 没有声明?有没有我错过的选项?
我希望在验证时检测到这些类型的错误。是否有另一个 javascript 工具可以检测对象内部未声明的属性或方法的使用,如上面示例中所述?
【问题讨论】:
-
好吧,也许它被声明为
String.prototype.foo? JSLint 不知道这一点,也没有带来完整的类型系统。你可能想看看 TypeScript 或类似的东西。
标签: javascript jslint jshint