首页 > 解决方案 > 如何检查变量是否“未定义”(不仅仅是“未定义”)

问题描述

我想检查一个变量是否是not defined,不包括分配给的变量undefined,没有try/catch

我知道typeof variable,但这不符合我想要的。

例如 :

let a;
console.log(typeof a === typeof b); // outputs true

console.log(a); // outputs 'undefined'
console.log(b); // throws error 'b is not defined'

我想要的是能够分辨未定义变量和值为 的变量之间的区别undefined,而不必使用try/catch.

我的用例(来自评论)是:

我想看看省略的参数和设置为未定义的参数在函数调用中的区别。而且一般来说,如果可能的话

标签: javascript

解决方案


一种可能性是使用 window.hasOwnProperty("var"),如下所示:

不知道这是否适用于所有情况...

您还可以尝试使用“this”关键字而不是“window”来将“hasOwnProperty”函数集中在当前范围上。

var a;

console.log("Is a declared? "+window.hasOwnProperty("a"));
console.log("type of a: "+typeof(a));
console.log("Is b declared? "+window.hasOwnProperty("b"));
console.log("type of b: "+typeof(b));


推荐阅读