如何避免Uncaught ReferenceError

bsr*_*bsr 14 javascript node.js

我在我的javascript文件中导出了以下模块,以便我可以从基于node.js的构建设置(grunt,require ..)访问它.

    ....
if(module && module.exports) {
        module.exports = m;
    }
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中使用相同的文件时,它会出错

Uncaught ReferenceError: module is not defined const.js:49
(anonymous function)
Run Code Online (Sandbox Code Playgroud)

使用node作为后端.我怎么能避免这个错误?也就是说,我需要出口m,这样require它的构建(基于节点)中,但在浏览器中独立工作.

为什么浏览器不将变量模块视为未定义而不抛出任何错误?

谢谢.

Que*_*tin 35

测试typeof module !== "undefined"代替module

为什么浏览器不将变量模块视为未定义而不抛出任何错误?

因为,以及未定义,它也是未声明的.当您在变量名中输入拼写错误时,这是​​一个很好的功能.例如,以下错误更好,而不是被视为false:

var loose = true;
if (lose) {
}
Run Code Online (Sandbox Code Playgroud)