JSLint:"'HTMLElement'在定义之前就被使用了."

XP1*_*XP1 1 javascript jslint

JSLint:"'HTMLElement'在定义之前就被使用了."

if (element instanceof HTMLElement)
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

我是否必须添加例外或忽略它?

Ray*_*oal 6

检查"容忍错误的定义".

如果我的整个脚本是:

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指令后,这是有道理的.