在前端开发中,经常会遇到 ReferenceError: _ is not defined
的错误提示。这个错误提示通常出现在我们使用 Underscore.js 或 Lodash 等 JavaScript 库时,但是却没有正确引入库文件或者没有定义需要使用的变量。
问题原因
当我们使用 Underscore.js 或 Lodash 等 JavaScript 库时,需要先将相应的库文件引入到 HTML 文档中。如果忘记引入、路径不正确、加载顺序错误等,就会导致浏览器无法找到所需的 _
变量,从而抛出 ReferenceError: _ is not defined
错误。
例如,在下面的代码片段中,我们试图使用 Underscore.js 的 each 方法来遍历数组:
-- -------------------- ---- ------- --------- ----- ------ ------ --------------------- ------------ ------- ------ ------- ----------------------------- -------- ---- --- - --- -- --- ------------ -------------- ----------------- --- --------- ------- -------
如果我们忘记将 Underscore.js 引入到 HTML 文件中,或者引入的路径不正确,就会看到类似下面的错误信息:
Uncaught ReferenceError: _ is not defined
解决方法
为了解决 ReferenceError: _ is not defined
错误,我们需要检查以下几点:
- 是否正确引入了相应的 JavaScript 库文件,并且路径是正确的。
- 是否按照正确的顺序引入了 JavaScript 库文件。有些库需要先引入一些依赖库,再引入自身的库文件。
- 是否在使用
_
变量之前定义了它。
下面是一个正确使用 Underscore.js 的例子:
-- -------------------- ---- ------- --------- ----- ------ ------ --------------------- ------------ ------- ------ ------- ----------------------------- ------- --------------------------------- -------- -------------- ----- --- - --- -- --- ------------- -------------- ----------------- --- ---- --------- ------- -------
这个例子中,我们首先引入了 jQuery 库,接着才引入了 Underscore.js 库。在调用 Underscore.js 的 each 方法之前,我们还使用了 jQuery 的 $(function(){}) 语法来确保文档准备就绪。
总结
ReferenceError: _ is not defined
错误通常出现在我们使用 Underscore.js 或 Lodash 等 JavaScript 库时,但是却没有正确引入库文件或者没有定义需要使用的变量。为了避免这个错误,我们需要检查 JavaScript 库文件的路径和加载顺序,并在使用 _
变量之前定义它。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/31188