在 JavaScript 中,您可以声明一个变量,如果是undefined
,您可以检查variable == undefined
;我知道,但是如果它在内存中,你怎么能比较一个你还不知道的值呢?
例如,我有一个在用户单击按钮时创建的类。在此之前,类是未定义的——它不存在于任何地方;我该如何比较它?
有没有不使用try
-<code>catch 的方法?
在 JavaScript 中,您可以声明一个变量,如果是undefined
,您可以检查variable == undefined
;我知道,但是如果它在内存中,你怎么能比较一个你还不知道的值呢?
例如,我有一个在用户单击按钮时创建的类。在此之前,类是未定义的——它不存在于任何地方;我该如何比较它?
有没有不使用try
-<code>catch 的方法?
最好的方法是检查类型,因为undefined
//在 JSnull
中false
是一件棘手的事情。所以:
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 中是正确的,所以如果你想知道你的变量或对象是否未定义并想要采取行动,你可以这样做:
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 ...