在JavaScript中,如果对象或函数的类型未定义,是否有显示消息或返回false的方法?好像如果没有对象或函数,就无法在屏幕上显示错误消息,而是在Web控制台中显示错误。
答案 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)
(强制性答案包括矫枉过正的第三方图书馆)
有趣地使用与此处提供的其他答案略有不同的方法:
_.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.*/
}