在 JavaScript 中,您可以声明一个变量,如果是undefined
,您可以检查variable == undefined
;我知道,但是如果它在内存中,你怎么能比较一个你还不知道的值呢?
例如,我有一个在用户单击按钮时创建的类。在此之前,该类是未定义的——它不存在于任何地方;我该如何比较?
有没有不使用try
- 的方法catch
?
在 JavaScript 中,您可以声明一个变量,如果是undefined
,您可以检查variable == undefined
;我知道,但是如果它在内存中,你怎么能比较一个你还不知道的值呢?
例如,我有一个在用户单击按钮时创建的类。在此之前,该类是未定义的——它不存在于任何地方;我该如何比较?
有没有不使用try
- 的方法catch
?
最好的办法是检查类型,因为undefined
/ null
/false
在JS一件棘手的事情。所以:
if(typeof obj !== "undefined") {
// obj is a valid variable, do something here.
}
请注意,typeof
始终返回一个字符串,如果该变量根本不存在,则不会产生错误。
if (obj === undefined)
{
// Create obj
}
如果您正在进行大量的 javascript 编程,您应该养成使用的习惯===
以及!==
何时进行特定类型的检查。
此外,如果您打算使用大量的 javascript,我建议通过 JSLint http://www.jslint.com运行代码,起初它可能看起来有点严厉,但 JSLint 警告您的大部分内容最终都会出现回来咬你。
if (document.getElementById('theElement')) // do whatever after this
对于抛出错误的未定义事物,测试父对象的属性名称而不仅仅是变量名称 - 所以而不是:
if (blah) ...
做:
if (window.blah) ...
!undefined
在 javascript 中是 true,所以如果你想知道你的变量或对象是否未定义并想采取行动,你可以这样做:
if(<object or variable>) {
//take actions if object is not undefined
} else {
//take actions if object is undefined
}
if (!obj) {
// object (not class!) doesn't exist yet
}
else ...