如何判断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";
if(window["str_"+xy]){
//do something
}