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

△判断组合变量是否为undefined的问题
var   key   =   "变量 ";
var   vv_变量_vv   =   "组合变量值 ";
alert(typeof   eval( "vv_ "+key+ "_vv "));
这样写可以取出正确的值,但如果写成:
var   vv_变量_vv   =   "组合变量值 ";
alert(typeof   eval( "vv_ "+key+ "_vv "));
这样就不会弹出消息框。
请问这种情况下怎么判断typeof   eval( "vv_ "+key+ "_vv ")的类型?

------解决方案--------------------
var vv_变量_vv = "组合变量值 ";
try {
alert(typeof eval( "vv_ "+key+ "_vv "));
} catch (e) {
alert( "undefined ");
}
------解决方案--------------------
var tmp = false;
try {
tmp = typeof(eval( "vv_ "+key+ "_vv "))== "undefined ";
} catch (e) {
tmp = true;
}
if (tmp) {
......
}
------解决方案--------------------
两种写法的区别在于key 没初始化,这里是undefined,所以实际eval的值是vv_undefined_vv,当然不会弹了.判断的话,JS中有自己的逻辑判断机制,如果是undefined,直接写就可以了
if(a)
{
alert( "a不是undefined ")
}