我想检查变量是否有定义。例如,下面的代码会抛出一个未定义的错误

alert( x );

我如何捕捉这个错误?


当前回答

一个更简单、更简洁的版本是:

if (!x) {
   //Undefined
}

OR

if (typeof x !== "undefined") {
    //Do something since x is defined.
}

其他回答

一个更简单、更简洁的版本是:

if (!x) {
   //Undefined
}

OR

if (typeof x !== "undefined") {
    //Do something since x is defined.
}

void操作符对于传递给它的任何参数/表达式都返回undefined。因此,您可以根据结果进行测试(实际上,一些微型程序将代码从undefined更改为void 0以节省几个字符)

例如:

void 0
// undefined

if (variable === void 0) {
    // variable is undefined
}

我们可以像下面这样检查undefined

var x; 

if (x === undefined) {
    alert("x is undefined");
} else {
     alert("x is defined");
}

我经常这样做:

function doSomething(variable)
{
    var undef;

    if(variable === undef)
    {
         alert('Hey moron, define this bad boy.');
    }
}

另一个潜在的“解决方案”是使用window对象。它避免了在浏览器中出现引用错误问题。

if (window.x) {
    alert('x exists and is truthy');
} else {
    alert('x does not exist, or exists and is falsy');
}