js字符串定义为变量名,通过字符串查找变量
2018-02-28 16:37
344 查看
最近在写js的时候碰到了难题,我又一个页面需要生成很多的变量。但是变量的名称是根据参数的不同而区分的。
初始化变量时等号左边是不允许是表达式的。
所以
1、字符串定义为变量名
例如可能需要生成的变量名字 url_1,url_2,url_3… (后面的数字是根据参数来的)。 所以我的函数名 应该由 var ‘变量名’ = “url_”+num; 生成函数名 但这问题就来了。初始化变量时等号左边是不允许是表达式的。
所以
var "url_"+num = " http://www.1234.com";[/code] 这肯定是错误的。后来问了度娘后才知道。可以使用 window[字符串变量名] = 100 这种方式来定义变量。看代码function createVariable(num){ var name = "url_"+num; //生成函数名 window[name] = 100; //注意看中括号里的内容加引号和不加引号的区别 //加引号代表name为字符串,而不是上面的name变量'url_*' window['name'] = 200; } create_variable(2); alert(url_2); // 100; alert(name); //200;
window用中括号的方式定义 变量时,中括号里的内容应该是字符串。如果是一个变量的话,他就会解析这个变量找到具体的值。2、通过字符串查找变量
这种情况是我已经定义好了多个类似“url_1,url_2,url_3……”的有规律变量,但是当动态引用变量的时候获取变量的值是个问题//使用freemarker遍历集合批量生成变量 <#list audioUrlList?if_exists as item> var audioUrl_${item_index}="${item}"; </#list>
根据指定的角标调用时可以用function getUrl(index){ var variableName = "audioUrl_"+index; return eval(variableName); }
eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码附:其他方式解决 字符串定义为变量名
1、用对象的形式var object = {}; for(var i=0;i<10;i++){ object['var_'+i]=''; }
2、用数组的形式var arr=[]; for(var i=0;i<xxx.length;i++ ) { arr[i]= }
相关文章推荐
- js中定义用字符串拼接起来的变量名的变量
- 通过JS原型定义字符串格式化方法
- js中定义用字符串拼接起来的变量名的变量
- js通过沿着作用域链还是原型链查找变量
- js 动态创建一个变量,以字符串形式定义变量,定义对象
- js中input的属性设置问题(变量设置,字符串拼接,通过函数设置)
- 定义一个函数求字符串的长度,要求该函数体内不能声明任何变量
- JS判断字符串变量是否含有某个字串的方法
- 基础篇:8.如何定义变量?js变量有什么特点?
- linux 环境变量配置及查找字符串文件方法
- JS变量的定义以及命名规范
- js中的自动类型转换 字符串变量和数值执行算数运算
- JS中使用正则查找查找字符串中的手机号码或者固定电话
- js 判断字符串是否包含某字符串,String对象中查找子字符,indexOf
- 在JS的(字符串)数组中针对每个元素的内容进行查找和替换
- 怎么在js中拼接字符串、变量、html?
- JS作用域为“函数级作用域”,记住最简明的一句“函数中声明的所有变量,无论是在哪里声明的,在整个函数中它们都是有定义的。”QQ253079952
- 通过js来获取包含中文字符的字符串的长度的方法
- Js,php查找字符串练习
- 递归:从尾到头输出链表& 从尾到头输出一个字符串 & 定义一个函数求字符串的长度,要求该函数体内不能声明任何变量