Javascript中字符串转为变量名的4种解决方案

Js编程过程中,或多或少会出现需要动态生成一系列变量名,数量比较大时也不方便提前声明,这时候可能就需要先进行字符串拼接,然后将拼接的字符串转换为变量名。

当我们需要生成很多的变量,但是变量的名称是根据参数的不同而区分的,如 date_1,date_2,datet_3... (后面的数字是根据参数来的),那我们就需要写一个var name = "test_"+num;,这样的函数来生成变量名。

  • 1、最简便的方法,通过var name = eval('test_'+num)这样就可以了,但并不推荐使用eval函数。
  • 2、使用window[name] 等价于window.name可以改造为var name = window['test_'+num],缺点一目了然,污染了全局变量,不过可以将其挂在到局部变量上。
  • 3、使用new Function

贡献自FCC-星空

function strToVar(str) {
        var json = (new Function("return " + str))();
        return json;
    }
strToVar("name")
console.log(name)//true,变量已生成,但未赋值。

eval(),new Function() 性能安全性并不好,不推荐使用

  • 4、采用数组的形式
var arr = [];
for (var i = 0,var len = some.length; i < len; i++){
    arr[i]['test_'  +i]= null;
}

变量在数组中都有对应的下标,赋值和调用都不是很方便,但可能在特殊的使用环境中有奇效。
总结:最佳使用方法通过var name = obj[strname]实现字符串转为变量。
广告:希望了解更多前端非常规知识的可以查看我长期更新的前端非常规知识总结

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Js编程过程中,或多或少会出现需要动态生成一系列变量名,数量比较大时也不方便提前声明,这时候可能就需要先进行字符串...
    liudai123阅读 4,502评论 0 0
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,573评论 0 4
  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 5,619评论 0 6
  • 下午一节课,原设计为学生品味济南的山的特点。指导学生用句式“我从________读到了___________山(水...
    沐芝阳阅读 1,943评论 0 2
  • 柒越阅读 1,527评论 0 0