如何检查分配给缺失的匿名函数表达式的变量是否为 null 或 undefined?

How do you check for null or undefined on a variable assigned to a missing anonymous function expression?

在注释掉下面的匿名函数表达式"a"时,如何正确检查"b"上的NULL?用例:假设 "a" 是一个页内 JS 包含(库),它被分配给 "b",但是库加载失败,现在我们有一个控制台错误。

var a = function () { return 'Success!'; } // Exclude this line
var b = a();
if (typeof b !== 'undefined' || b !== null) { // These checks do not work.
   console.log(b);
} else {
   console.log('Failed!');
}

如果我正确理解你的用例,这行代码就在你身边 应用程序:

var b = a();

如果正确,您可以有条件地重新分配 a 自身或新函数或对象。
当您要检查全局变量是否存在时,这是一种常见的模式。

这是一个 运行 示例,当 a 不存在时:

// library 
//var a = function () { return 'Success!'; } // Exclude this line

// my app
var a = a || function(){};
var b = a();
if (b) {
   console.log(b);
} else {
   console.log('Failed!');
}

a 存在时,这里是相同的代码:

// library 
var a = function () { return 'Success!'; } // Exclude this line

// my app
var a = a || function(){};
var b = a();
if (b) {
   console.log(b);
} else {
   console.log('Failed!');
}