JSLint:"'HTMLElement'在定义之前就被使用了."
if (element instanceof HTMLElement)
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我是否必须添加例外或忽略它?
检查"容忍错误的定义".
如果我的整个脚本是:
var e;
if (e instanceof HTMLElement) {
alert("");
}
Run Code Online (Sandbox Code Playgroud)
而唯一的检查框"容忍乱序的定义".
我得到的回应是:
Global HTMLElement, alert, e
Run Code Online (Sandbox Code Playgroud)
此复选框似乎仅适用于全局范围中使用的标识符.如果在函数体内尝试这个,JSLint会抱怨,alert除非你选中"Assume console,alert"框.但是,以下技巧确实满足JSLint:
var HTMLElement = HTMLElement;
(function () {
var e;
if (e instanceof HTMLElement) {
alert("");
}
}());
Run Code Online (Sandbox Code Playgroud)
这将通过复选框"Assume console,alert","Tolerate misordered definitions"和"Tolerate missing use strict".我收到了回复:
Global HTMLElement
3 'anonymous'()
Variable e
Global HTMLElement
Complexity 2
Run Code Online (Sandbox Code Playgroud)
绝对是一个黑客; /*global HTMLElement */是最好的.但是,在阅读JSLint指令后,这是有道理的.