4

我刚刚在 JSLint 测试了我的自定义库脚本。除一个错误外,所有错误都已解决。隐含的全局错误..这真的是一个错误吗?我可以忽略它还是应该努力解决这个错误..?

谢谢您的反馈!

替代文字

Error:
Implied global:
<bunch of vars and other stuff i dont know>

这是什么意思?顺便说一句,我使用 JQuery 库..也许这就是问题^^..

4

3 回答 3

6

如果您在这种情况下使用外部声明的变量,请在文件顶部放置一个“全局”语句,如下所示:

/*全局$,文档*/

于 2011-05-04T21:59:14.463 回答
2

JSLint 文档说:

未定义的变量和函数

JavaScript 最大的问题是它对全局变量的依赖,尤其是隐含的全局变量。如果变量没有显式声明(通常使用 var 语句),则 JavaScript 假定该变量是全局变量。这可以掩盖拼写错误的名称和其他问题。

JSLint 期望所有变量和函数在使用或调用之前都被声明。这允许它检测隐含的全局变量。这也是一种很好的做法,因为它使程序更易于阅读。

注意那个错误。几乎每个编码约定都希望您不要使用隐含的全局变量。

可以使用var关键字声明变量。

于 2011-01-07T12:19:14.137 回答
1

在为浏览器编写 JavaScript 代码时,向 JSLint 表明您处于浏览器模式很有用,例如通过包括以下内容:

/*jslint browser: true */

这应该解决“document”、“setTimeout”和其他典型的浏览器默认值

由于 jQuery 可能不会在与您的 JavaScript 相同的上下文中进行评估,因此您需要让人们知道永远有用的 '$' 可用于:

/*global $ */
于 2012-03-20T20:53:33.710 回答