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