在JavaScript中引用未定义的变量时,如何避免出现错误

How can I avoid the error when an undefined variable is referred to in JavaScript

本文关键字:何避免 错误 变量 JavaScript 引用 未定义      更新时间:2023-09-26

以下在浏览器中抛出并错误"未定义模块"。既然我不能提前确定模块将被定义,为什么以及如何避免错误?

;(function() {
    var version = '0.0.1';
    /**
     * This file needs to work in
     * both NodeJS and browsers.
     */
    if (module) {
        module.exports = version;
    } else {
        define(function() {
            return version;
        });
    }
}());

添加此检查以查看module是否已定义

if(typeof module !== "undefined") {
    // do stuff
}

在您的示例中,您会得到一个异常,因为module在达到您的条件时尚未声明或分配。因此,当您尝试通过执行if(module)来检查它是否为null时,变量从未被赋值,因此它会抛出异常。如果在您执行var module = null的条件之前,您的代码就可以工作。即使您将其设置为null,它也已被分配,因此它不是undefined

使用typeof可以使标识符以前从未声明过,因此您可以避免遇到异常。