日期:2014-05-16  浏览次数:20307 次

如何判断JS变量是否定义?
var str_aa=1;
var str_bc=2;
var str_dg=3;
......

以上是开始动态生成且定义的若干个以 str_ 开头的定义的变量;


另:
xy是获取的一个字符串;类似xy="ay"或xy="bc"或xy="cs"...

然后和 str_ 组合在一起,类似 str_ay 或 str_bc 或 str_cs 等等




如何判断/检查  "str_"+xy 是否是开始已经定义好的变量??




类似 alert(typeof(eval("str_"+xy)));//但这样写会报错。

------解决方案--------------------
把typeof也放到字符串中一起eval
alert(eval('typeof ' + 'str_' + xy))
------解决方案--------------------
建议用这个:
var xy="ay";
alert(typeof(window["str_"+xy]));
------解决方案--------------------
用try catch判断下,2L判断window的方法在函数内的变量就无法判断了

    try {
     eval('str_aa')
    } catch(_) {
     alert('参数未定义')
    }

------解决方案--------------------
 alert(eval(typeof ("str_"+xy)));
------解决方案--------------------
如果全局变量就用2楼的方法,函数内的话最好把这些变量全部定义成某个对象的属性名字,这样就好判断了
------解决方案--------------------
引用:
建议用这个:
var xy="ay";
alert(typeof(window["str_"+xy]));


可以再简单点


var xy="ay";
if(window["str_"+xy]){
//do something
}