在 JavaScript 中,如果对象或函数的类型未定义,有没有办法显示消息或返回 false?似乎如果某个对象或函数不存在,则无法在屏幕上显示错误消息,而是在 Web 控制台中显示错误。
问问题
426 次
4 回答
3
这应该有助于:
if (typeof foo === "undefined") {
// foo is undefined
}
或者(参见Otto 的回答),您也可以使用:
if (foo === void(0)) {
// foo is undefined
}
您不应该使用,if (foo === undefined)
因为(正如Alnitak 指出的那样),全局属性undefined
在某些浏览器中可能具有非默认值(从 JavaScript 1.8.5-Firefox 4 开始,它是只读属性)。
于 2012-10-29T13:59:17.797 回答
1
运算符将为您提供变量的类型,如果未定义变量typeof
,则为您提供字符串。"undefined"
if (typeof myvar === 'undefined') {
// it's not defined
}
或者,如果你想要一个布尔值:
var itsDefined = (typeof myvar !== 'undefined');
这名义上比测试更安全:
if (var === undefined)
因为在某些浏览器上undefined
可能会被覆盖。
于 2012-10-29T13:59:26.623 回答
1
(强制性回答,包括过度杀伤第三方库)
有趣的是,它使用的方法与此处提供的其他答案略有不同:
_.isUndefined = function(obj) {
return obj === void 0;
};
)
于 2012-10-29T14:04:10.550 回答
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.*/
}
于 2012-10-29T14:01:52.703 回答