我应该担心“未定义窗口”JSLint 严格模式错误吗?

Posted

技术标签:

【中文标题】我应该担心“未定义窗口”JSLint 严格模式错误吗?【英文标题】:Should I worry about "window is not defined" JSLint strict mode error? 【发布时间】:2010-12-23 15:12:00 【问题描述】:

这不会在严格模式下通过 JSLint:

"use strict";
(function (w) 
   w.alert(w);
(window));

来自 jslint.com 的错误如下所示:

第 4 行字符 3 处的问题:“窗口”未定义。

(window));

隐含全局:窗口 4

我需要告诉 JSLint 忽略该错误,还是我真的做错了什么?

【问题讨论】:

【参考方案1】:

尝试添加以下内容:

/*jslint browser: true */
/*global window */

(或选中 Assume a browser 复选框)。

第一行添加了一般浏览器支持。第二行将 window 声明为全局变量。

来自文档:

浏览器选项不包括全局对象的别名,windowself

【讨论】:

如果我们使用 es6 jslint,则不允许使用全局变量【参考方案2】:

知道了,在一个错误的开始之后。我第一次尝试这个:

/* global window */

...这不起作用。这样做了:

/*global window */

最初的星号后面的空格很重要。

【讨论】:

这对我有用,同时使用 Visual Source Code v. 1.20.1: /* global console, require, window */ (即使有空格)

以上是关于我应该担心“未定义窗口”JSLint 严格模式错误吗?的主要内容,如果未能解决你的问题,请参考以下文章

JSLint notepad++使用

Angular node_modules:正确包含 JQuery 并防止“未定义窗口”错误

JSLint 严格违规。面向对象的 Javascript 挫折

命名空间模式导致 JSLint '函数在定义之前被使用' 错误

JavaScript:JSLint 错误“for in 的主体应包含在 if 语句中以过滤原型中不需要的属性”

“使用严格”导致未定义的错误