2

在注释掉下面的匿名函数表达式“a”时,如何正确检查“b”上的 NULL?用例:假设“a”是分配给“b”的页面内 JS 包含(库),但库无法加载,现在出现控制台错误。

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!');
}
4

1 回答 1

1

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

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!');
}

于 2017-12-29T23:15:35.990 回答