如何检查javascript中是否存在变量?

sca*_*man 20 javascript

我不是在询问变量是否未定义或是否为null.我想检查变量是否存在.这可能吗?

nnn*_*nnn 21

这些typeof技术不起作用,因为它们不区分何时根本没有声明变量,何时声明变量但未赋值,或声明并设置为等于undefined.

但是,如果您尝试使用未在if条件中(或在赋值的右侧)声明的变量,则会出现错误.所以这应该工作:

var exists = true;
try {
    if (someVar)
        exists = true;
} catch(e) { exists = false; }
if (exists)
   // do something - exists only == true if someVar has been declared somewhere.
Run Code Online (Sandbox Code Playgroud)

  • +1有关说明和解决方案。考虑一下这种修改:`var exist = false; 尝试{eval(“ someVar”); 存在= true}捕获(e){};if(exists)...`-eval()是为了防止超智能Javascript引擎对其进行优化。它还将欺骗大多数其他静态分析。 (2认同)