JSHint和jQuery:未定义“ $”

2020/10/14 17:01 · javascript ·  · 0评论

以下JS:

(function() {
  "use strict";

  $("#target").click(function(){
    console.log("clicked");
  });

}());

产量:

test.js: line 5, col 3, '$' is not defined.

使用JSHint 0.5.5衬棉时。有任何想法吗?

如果使用相对较新的JSHint版本,通常首选的方法是在项目的根目录中创建一个.jshintrc文件,并将此配置放入其中:

{
    "globals": {
        "$": false
    }
}

这向JSHint声明$是全局变量,而false表示不应覆盖它。

真正较旧的JSHint版本(例如像2012年的原始问题那样的v0.5.5)不支持.jshintrc文件。如果您不能或不想使用.jshintrc文件,则可以在脚本文件的顶部添加此文件:

/*globals $:false */

还有一个简写的“ jquery” jshint选项,如JSHint选项页面所示

您也可以在.jshintrc中添加两行

  "globals": {
    "$": false,
    "jQuery": false
  }

这告诉jshint有两个全局变量。

您需要做的只是"jquery": true在您的中设置.jshintrc

根据JSHint选项参考

jQuery的

此选项定义jQuery JavaScript库公开的全局变量。

这是一个快乐的小列表,可放入您的.jshintrc,

我会在时间流逝时添加到此列表中。

{
  // other settings...
  // ENVIRONMENTS
  // "browser": true, // Is in most configs by default
  "node": true,
  // others (e.g. yui, mootools, rhino, worker, etc.)
  "globals": {
    "$":false,
    "jquery":false,
    "angular":false
    // other explicit global names to exclude
  },
}

如果您使用的是WebStorm,PyCharm,RubyMine或IntelliJ IDEA等IntelliJ编辑器:

在“文件/设置/ JavaScript /代码质量工具/ JSHint”的“环境”部分中,单击“ jQuery”复选框。

我建议不要使用通常的“关闭JSHint全局变量”,而建议使用模块模式来解决此问题。它使您的代码保持“包含”并提高了性能(基于Paul Irish的“我从Jquery中学到的10件事”)。

我倾向于这样写我的模块模式:

(function (window) {
    // Handle dependencies
    var angular = window.angular,
        $ = window.$,
        document = window.document;

    // Your application's code
}(window))

您还可以获得以下其他性能优势(在此处有更多说明):

  • 压缩代码时,传入的window对象声明也将缩小。例如window.alert()成为m.alert()
  • 自执行匿名函数中的代码仅使用该window对象的1个实例
  • 调用window属性或方法时,您切入正题,以防止昂贵的范围链遍历,例如window.alert()(更快)与alert()(慢)性能。
  • 通过“命名空间”和包含(全局变量是邪恶的)来实现局部功能范围。如果需要将此代码分解为单独的脚本,则可以为每个脚本创建一个子模块,并将它们导入一个主模块中。

如果您使用的是IntelliJ编辑器,请在

  • 首选项/设置

    • Java脚本

      • 代码质量工具

        • 捷迅

          • 预定义(在底部),单击设置

您可以输入任何内容,例如console:false,它也会将其添加到列表(.jshintrc)中-也是全局的。

要在使用在线JSHint实现时解决此错误

  • 单击“配置”(页面中间列的顶部)
  • 启用“ jQuery”(在底部的“ ASSUME”部分下)

您可能想要执行以下操作,

const $ = window.$

为了避免它引发掉毛错误。

本文地址:http://javascript.askforanswer.com/jshinthejqueryweidingyi.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!