2 qq 35436516 qq_35436516 于 2017.01.16 11:28 提问

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

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

6个回答

w172087242
w172087242   Ds   Rxr 2017.01.16 11:35
已采纳

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

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

qq_35436516
qq_35436516 回复little_how: 谢谢你了,我的问题解决了,嘿嘿
11 个月之前 回复
w172087242
w172087242 动态定义一个变量为window['abc' + id + 'def'] = 'littlehow动态进入';
11 个月之前 回复
q995245021
q995245021   2017.01.16 11:27

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

qq_35436516
qq_35436516 朋友,id是一直都有的,但是拼接的那个变量不一定存在
11 个月之前 回复
ahaqzylx3_4
ahaqzylx3_4   2017.01.16 11:35

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

qq_35436516
qq_35436516   2017.01.16 11:35

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

Book1346
Book1346   2017.01.16 11:39

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

qq_35564527
qq_35564527   2017.01.16 12:09

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!