如何判断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('参数未定义')
}
var xy="ay";
if(window["str_"+xy]){
//do something
}