如果我不知道它们是否存在,如何将变量与undefined进行比较?

时间:2010-05-06 06:23:39

标签: javascript undefined

在JavaScript中,您可以声明一个变量,如果它是undefined,您可以检查variable == undefined;我知道,但是你怎么能比较一个你还不知道的值,如果它在内存中呢?

例如,我有一个在用户单击按钮时创建的类。在此之前,该类是未定义的 - 它在任何地方都不存在;我怎么比较呢?

有没有办法不使用try - catch

5 个答案:

答案 0 :(得分:174)

最好的方法是检查类型,因为undefined / null / false在JS中是个棘手的问题。 所以:

if(typeof obj !== "undefined") {
    // obj is a valid variable, do something here.
}

请注意,typeof始终返回一个字符串,如果该变量根本不存在,则不会生成错误。

答案 1 :(得分:48)

if (obj === undefined)
{
    // Create obj
}

如果你正在进行广泛的javascript编程,你应该养成使用===和!==的习惯,当你想进行特定类型的检查时。

另外如果你要做相当数量的javascript,我建议你通过JSLint运行代码http://www.jslint.com一开始看起来有点严厉,但JSLint警告你的大部分内容最终都会回来咬你。

答案 2 :(得分:2)

if (document.getElementById('theElement')) // do whatever after this

对于抛出错误的未定义的东西,测试父对象的属性名称而不仅仅是变量名称 - 所以代替:

if (blah) ...

做的:

if (window.blah) ...

答案 3 :(得分:1)

!undefined在javascript中是正确的,因此如果您想知道您的变量或对象是否未定义并且想要采取行动,您可以执行以下操作:

if(<object or variable>) {
     //take actions if object is not undefined
} else {
     //take actions if object is undefined
}

答案 4 :(得分:0)

if (!obj) {
    // object (not class!) doesn't exist yet
}
else ...