JSLint的问题与“窗口”作为一个全局variables
所以我使用JSLint来尝试和检测错误。 我closures了一些我不喜欢的选项,但是我没有看到任何能够使用window
全局variables的方法。 那么,有雅虎小工具选项,但这是矫枉过正。
使用“窗口”的处理是什么,为什么JSLint会说错误?
/*jslint browser: true*/
这是正确的解决scheme。
2017-07-07:JSLint文档现在说:
browser
…它不提供自己或窗口; 你将不得不自己请求这些可怕的全局对象的别名。
和
/ global /指令只能在假定浏览器选项被选中时使用。
所以你现在需要使用:
/* jslint browser */ /* global window */
只需在您的脚本中发表评论:
/*global window */ ... your script goes here
这个评论会告诉JSLint window
是在别的地方定义的。
请参阅: http : //www.JSLint.com/lint.html ,
JSLint还会识别一个
/* global */
comment,它可以向JSLint指出在该文件中使用的variables是在其他文件中定义的。 注释可以包含逗号分隔的名称列表。 每个名称可以有select地跟一个冒号,也可以是true或false,true表示variables可以被这个文件赋值,false表示不允许赋值,这是默认值。
如果希望窗口默认为全局而不必将注释应用于脚本,则可以将predef:["window"]
到本地jslint.js
文件的JSLINT
函数内的对象字面量参数。
顺便说一句,我使用的是predef:["$","window"]
也有jQuery全局。
更新:
这个答案在2009年是正确的。到目前为止,你应该使用解决scheme/*jslint browser: true*/
由马特·克拉克森提供。
要让JSLint知道你认识到window
是一个全局对象,在你的文件的顶部添加这个指令:
/*global window*/
我曾经可以使用:
/*jslint browser: true */
但是这似乎不再起作用。 现在,根据JSHint关于browser
选项的帮助 :
它不提供
self
或window
; 你将不得不自己请求这些可怕的全局对象的别名。
我不知道什么时候做了这个改变,但是让我有一阵子阻碍了。
我不得不在这个代码中使用上面的两个答案来摆脱所有的警告:
/*jslint browser:true*/ /*global window*/ // eventBoiler v0.1.1 by @ryanpcmcquen // https://github.com/ryanpcmcquen/eventBoiler (function (win, doc) { 'use strict'; win.eventBoiler = function (selector, typeOfEvent, func) { doc.querySelector(selector).addEventListener(typeOfEvent, func); }; win.eventBoiler.all = function (selectors, typeOfEvent, func) { Array.prototype.slice.call(doc.querySelectorAll(selectors)).map(function (i) { i.addEventListener(typeOfEvent, func); }); }; }(window, document));
所以对我来说,这是使用JSLint网站时的解决scheme:
/*jslint browser:true*/ /*global window*/
如果你不想在每个文件中指定这个,你可以在你的eslintrcconfiguration文件中全局地设置它,像这样:
"globals": { "window": true, }
- validationJavaScript中的十进制数 – IsNumeric()
- nvd3 piechart.js – 如何编辑工具提示?
- UserScripts&Greasemonkey:调用网站的JavaScript函数
- AWS Lambda错误:“无法find模块”/ var / task / index“”
- 你怎么能调整一个jQuery UI手风琴的高度?
- ~~(“double tilde”)在Javascript中做什么?
- 在JavaScript原型函数中保留对“this”的引用
- jQuery / JavaScript“这个”指针混淆
- AngularJS-每个路由和控制器中的login和authentication