【问题标题】:JSLint (Javascript Validator Website) - Error! Implied global:JSLint(Javascript 验证器网站)- 错误!隐含的全局:
【发布时间】:2011-06-05 05:52:42
【问题描述】:

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

感谢您的回复!

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

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

【问题讨论】:

    标签: javascript jquery validation jslint


    【解决方案1】:

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

    /*jslint browser: true */
    

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

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

    /*global $ */
    

    【讨论】:

      【解决方案2】:

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

      /*全局 $, 文档 */

      【讨论】:

        【解决方案3】:

        JSLint 文档说:

        未定义的变量和函数

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

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

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

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

        【讨论】:

        • @Mike:那么这是否意味着您在使用 jQuery 时无法摆脱这个错误?
        • 是的。因为调试器不包含 jquery core.js 文件。
        猜你喜欢
        • 1970-01-01
        • 2015-08-12
        • 1970-01-01
        • 1970-01-01
        • 2015-03-26
        • 2011-04-28
        • 2021-03-10
        • 1970-01-01
        • 2016-08-22
        相关资源
        最近更新 更多