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

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

6个回答

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

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

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

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

qq_35436516
JHCan333 朋友,id是一直都有的,但是拼接的那个变量不一定存在
2 年多之前 回复

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的值就信了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

2
vb6.0的标准模块的标准过程的定义怎么改变显示界面配置的变量
2
请问me.hide和unload me的区别是什么,什么情况下不切换变量使用me.hide
1
vb6.0中文版怎么通过配置文件的方式实现界面上变量的更换?
1
启动菜单不选择的时候默认读取源程序内存的变量,选取后读取配置文件,怎么判断?
1
vb6.0中文版一个配置文件怎么实现切换几个界面,每个界面的变量不同?
1
请问怎么在vb6.0中实现对多个界面的变量运用一个相同的配置文件实现界面变量的切换呢?
1
怎么在vb6.0中实现对窗体界面的控件的for循环变量怎么处理的思路怎么写?
1
vb6.0编程语言平台怎么可以实现循环变量在循环里作为一个窗体的控件变量?
1
求教用vb6.0编程语言开发的循环语句怎么实现循环语句的变量对控件属性的判断?
2
在powerBuilder中怎么把一个变量的值通过staticText显示在窗口上
2
powerbuilder中怎么把一个变量的值在一个普通窗口的st_1显示出来
6
在sql存储过程中怎么判断一个变量值在其表内是否存在,并返还bool值?
0
关于drools变量的问题
3
c# Form1登录成功后关闭自己 跳转到Form2 Form1的全局变量是否还存在 下面代码
2
C#中怎么将控件取到的值赋给定义的全局变量
1
c++判断变量类型是否匹配
3
java 多线程练习,共用一个变量,变量是递减的,但出现有两个线程的结果一样
3
JAVA中的成员变量和局部变量的位置
4
一个线程停止,另一个也停止运行,怎么做
1
Java 一个变量连续new对象,旧的对象怎么销毁