我应该担心“未定义窗口”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 声明为全局变量。
来自文档:
浏览器选项不包括全局对象的别名,window和self。
【讨论】:
如果我们使用 es6 jslint,则不允许使用全局变量【参考方案2】:知道了,在一个错误的开始之后。我第一次尝试这个:
/* global window */
...这不起作用。这样做了:
/*global window */
最初的星号后面的空格很重要。
【讨论】:
这对我有用,同时使用 Visual Source Code v. 1.20.1: /* global console, require, window */ (即使有空格)以上是关于我应该担心“未定义窗口”JSLint 严格模式错误吗?的主要内容,如果未能解决你的问题,请参考以下文章
Angular node_modules:正确包含 JQuery 并防止“未定义窗口”错误
JSLint 严格违规。面向对象的 Javascript 挫折
命名空间模式导致 JSLint '函数在定义之前被使用' 错误