首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

怎么判断JS变量是否定义

2013-02-06 
如何判断JS变量是否定义?var str_aa1var str_bc2var str_dg3......以上是开始动态生成且定义的若干

如何判断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
}

热点排行
Bad Request.