在JS中检查undefined的更短方法

时间:2014-01-15 05:27:09

标签: javascript node.js

寻找更好的习语..

var x = module;  // Reference Error
var x = typeof module==='undefined' ? window : module;

是否有更短的方法来检查模块是否存在?

2 个答案:

答案 0 :(得分:4)

var x = module;  // Reference Error

从技术上讲,你不会检查 未定义 - 即:如果module===undefined(许多其他答案都假设) - 你想知道是否该模块 声明

在这种情况下,你的第二个例子就是这样做的方法:

var x = typeof module==='undefined' ? window : module;
// replace window with whatever you want your fallback value to be

答案 1 :(得分:-1)

我喜欢使用双重爆炸(!!)。

第一个爆炸将变量强制转换为布尔值,第二个变换撤消第一次爆炸所执行的逻辑。

var x = !!module ? module : window;

这也是同时验证null和undefined的更短方法。这可能就是你想要的。

示例:

var foo = 1;
console.log(!!foo); //true

var bar = { name: "test" };
console.log(!!bar); //true

var module = null;
console.log(!!module); //false

var module = undefined;
console.log(!!module); //false