📜  jQuery 中为什么会出现“$ 未定义”错误?

📅  最后修改于: 2021-11-25 03:54:42             🧑  作者: Mango

jQuery 开发人员面临的最常见错误之一是“$ 未定义”错误。起初,这似乎是一个小错误,但考虑到超过 70% 的网站以某种形式使用 jQuery,这可能会造成巨大的混乱。

此错误背后的原因:
当开发人员在脚本中声明变量之前使用变量时,基本上会出现此错误。

例子:

Javascript
// ReferenceError: num is not defined
num;
 
declaration
var num;
 
// No more errors
data;


Javascript
//reference error
process();
 
process = function(){
var a = 2;
console.log(a);
}
 
// no error
process();


Javascript


Javascript
//an external CDN link

 
//fall back to local jQuery


输出:

在上面的示例中,我们看到‘num’在声明之前已被调用。这就是在第一行抛出ReferenceError: num is not defined 的原因。在第三行,’num’ 再次被调用。但是,这次不会抛出错误,因为该变量已经在脚本的第二行中定义。

这是一个非常常见的错误。避免这种情况的最好方法是在调用它们之前提升所有变量和函数。再看一个例子。

例子:

Javascript

//reference error
process();
 
process = function(){
var a = 2;
console.log(a);
}
 
// no error
process();

输出:

此错误的最常见原因:

  • 在 jQuery 脚本文件之前嵌入 jQuery 插件
    ‘$’ 用于在 jQuery 中声明任何变量。插件基本上是预先编写的代码块。这些块使用预定义的 jQuery 函数和方法。因此,需要在插件文件之前嵌入 jQuery 脚本文件。否则,应用程序将无法理解 jQuery 编码。

正确的顺序:

Javascript



  • CDN 托管 jQuery 问题:
    用于网站的 CDN 托管的 jQuery 版本可能已在客户的连接上被阻止。此类问题通常在源自中国、印度尼西亚、韩国等国家/地区的 IP 地址上观察到。
    为避免此问题,最好提供本地托管的 jQuery 回退版本。

例子:

Javascript

//an external CDN link

 
//fall back to local jQuery