ReferenceError: _ is not defined

在前端开发中,经常会遇到 ReferenceError: _ is not defined 的错误提示。这个错误提示通常出现在我们使用 Underscore.js 或 Lodash 等 JavaScript 库时,但是却没有正确引入库文件或者没有定义需要使用的变量。

问题原因

当我们使用 Underscore.js 或 Lodash 等 JavaScript 库时,需要先将相应的库文件引入到 HTML 文档中。如果忘记引入、路径不正确、加载顺序错误等,就会导致浏览器无法找到所需的 _ 变量,从而抛出 ReferenceError: _ is not defined 错误。

例如,在下面的代码片段中,我们试图使用 Underscore.js 的 each 方法来遍历数组:

--------- -----
------
------
    -------------------- ------------
-------
------

------- -----------------------------
--------
    --- --- - --- -- ---
    ----------- -------------- ----------------- ---
---------

-------
-------

如果我们忘记将 Underscore.js 引入到 HTML 文件中,或者引入的路径不正确,就会看到类似下面的错误信息:

-------- --------------- - -- --- -------

解决方法

为了解决 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