如何避免Uncaught ReferenceError

时间:2013-07-31 10:25:34

标签: javascript node.js

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

    ....
if(module && module.exports) {
        module.exports = m;
    }

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

Uncaught ReferenceError: module is not defined const.js:49
(anonymous function)

使用node作为后端。 我怎么能避免这个错误?也就是说,我需要在构建期间(基于节点)导出m以便require,但在浏览器中独立运行。

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

感谢。

1 个答案:

答案 0 :(得分:29)

测试typeof module !== "undefined"而不是module

  

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

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

var loose = true;
if (lose) {
}