判断一个变量是否存在,下面的情况怎么做?

判断一个变量是否存在,下面的情况怎么做?

问题描述:

我需要判断一个变量是否存在,现在有一个变化的id,我需要用id来拼这个变量,比如eval("abc" + id +"def");但是这个变量有的存在,有的没有定义,需要我判断一下是否存在,当我这样简单测试时if("undefined" != typeof(abcfristdef)){};可以走,但是当这样写时if("undefined" != typeof(eval("abc" + id +"def"))){};就会报not defined的错,本人小白,刚入行不久,请大手指教;

你那样做稍微复杂了一点;
如果变量不是局部的,那么可以用window来判断,都不需要eval函数;
给你举个例子:
var adc123def = 'littlehow';
console.log(window['abc123def']);//littlehow
如果判断一个判断是否存在,那么就可以
if(window['abc' + id + 'def'] === undefined) {
//你变量不存在的业务逻辑
}

如果有帮助,希望采纳,有疑问可以继续提问....

你可以直接判断id是不是undefined 然后再拼接

id给个默认,再判断,多debug

朋友,id是一直都有的,但是拼接的那个变量不一定存在

if("undefined" != typeof(abcfristdef)){};
上面这句的判断当然没问题,表达式正确,判断,返回判断结果
if("undefined" != typeof(eval("abc" + id +"def"))){};
第二个语句,因为你真正要判断的是id这个变量,你先进行拼接,再判断,当然出错
因为id可能不存在,那么你怎么先进行拼接?
这里提示说not defined的错,并不是不能判断的错,而是你拼接过程中,没找到id这个变量进行拼接的错。
所以最好是先判断id,有这个变量再进行拼接,

你可以加个静态的boolean 在你要使用的方法中改变boolean的值。比如。要用到那个变量时boolean改成true,不用改成false.再判断boolean的值就信了