如果函数的类型等于undefined,我该如何返回false?

时间:2012-10-29 13:58:03

标签: javascript

在JavaScript中,如果对象或函数的类型未定义,是否有显示消息或返回false的方法?好像如果没有对象或函数,就无法在屏幕上显示错误消息,而是在Web控制台中显示错误。

4 个答案:

答案 0 :(得分:3)

这应该有所帮助:

if (typeof foo === "undefined") {
    // foo is undefined
}

或者(参见Otto's answer),您也可以使用:

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

您应该使用if (foo === undefined),因为(作为Alnitak points out),全局属性undefined在某些浏览器中可以具有非默认值(截至JavaScript 1.8.5-Firefox 4 - 它是一个只读属性。)

答案 1 :(得分:1)

typeof运算符将为您提供变量的类型,如果未定义变量,则为"undefined"字符串。

if (typeof myvar === 'undefined') {
    // it's not defined
}

或者,如果你想要一个布尔值:

var itsDefined = (typeof myvar !== 'undefined');

这在名义上比测试更安全:

if (var === undefined)

因为某些浏览器undefined可能会被覆盖。

答案 2 :(得分:1)

(强制性答案包括矫枉过正的第三方图书馆)

Underscore.js _.isUndefined()

有趣地使用与此处提供的其他答案略有不同的方法:

_.isUndefined = function(obj) {
    return obj === void 0;
  };
)

答案 3 :(得分:0)

在访问变量的任何方法或孙子属性之前,应检查是否使用typeof检查(typeof x==="undefined")或try catch来定义它:

try{
    x.method();
}catch(e){
    /*You could check the error message to see if the exception was thrown because x is undefined.*/
}