代码之家  ›  专栏  ›  技术社区  ›  ncubica

如果我不知道变量是否存在,如何将变量与未定义变量进行比较?[复制品]

  •  82
  • ncubica  · 技术社区  · 14 年前

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

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

    有没有不用的方法 try 艾斯 catch ?

    5 回复  |  直到 14 年前
        1
  •  171
  •   Makram Saleh    11 年前

    最好的方法是检查 类型 ,因为 undefined / null / false 在JS中是一件棘手的事情。 所以:

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

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

        2
  •  46
  •   Timmy    12 年前
    if (obj === undefined)
    {
        // Create obj
    }
    

    如果你正在做大量的javascript编程,你应该养成使用==和的习惯!==要进行类型特定检查时。

    另外,如果您要做大量的javascript,我建议通过jslint运行代码。 http://www.jslint.com 一开始可能有点严厉,但JSlint警告你的大多数事情最终会回来咬你。

        3
  •  2
  •   Delan Azabani    14 年前
    if (document.getElementById('theElement')) // do whatever after this
    

    对于引发错误的未定义事物,测试父对象的属性名而不仅仅是变量名-因此而不是:

    if (blah) ...
    

    做:

    if (window.blah) ...
    
        4
  •  1
  •   DarthJDG chetan borse    13 年前

    !undefined 在javascript中为true,因此如果您想知道变量或对象是未定义的,并且想采取行动,可以这样做:

    if(<object or variable>) {
         //take actions if object is not undefined
    } else {
         //take actions if object is undefined
    }
    
        5
  •  0
  •   Thevs    14 年前
    if (!obj) {
        // object (not class!) doesn't exist yet
    }
    else ...