如何测试是否使用typeof设置变量?

时间:2012-08-19 21:42:25

标签: javascript

我试图使用typeof来确定变量是否未定义:

function reset_textarea(reset) {

if (typeof(reset) != 'undefined') {
   ...do stuff
  }

}

我这样称呼它:

reset_textarea('hello');

它不起作用,我似乎无法弄清楚原因。如果我删除if语句,函数会正常触发,因此 - 问题似乎在于我测试变量是否设置的方式。知道发生了什么事吗?

2 个答案:

答案 0 :(得分:1)

嗯,typeof("hello") string 的类型)已定义。这是一个Stringtypeof(hello)(注意缺少引号)就是您所需要的。这对你有用吗?

if(typeof(window[reset]) !== 'undefined') {
  //...
}

您必须了解变量(hello)和字符串("hello")之间的区别。请注意,window["hello"]相当于window.hello,但更灵活。

答案 1 :(得分:1)

您可以在window上测试是否存在具有指定名称的属性:

function reset_textarea(reset) {

    if (typeof(window[reset]) !== 'undefined') {
       // ...do stuff
    }

}