如何让JS变量和字符串拼接后,是变量而不是字符串?

发现一个很有意思的问题,就是把变量与字符串或者数字拼接后类型变成了字符串,而并执行其中的的 JavaScript 代码。

问题

<ul class="testList">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>
<script>
    var testList = $(".testList li")
    var test0 = "变量0";
    var test1 = "变量1";
    var test2 = "变量2";
    var test3 = "变量3";
    for(var i=0;i<testList.length;i++){
      testList.eq(i).html("test" + i)
    }
</script>

输出结果:

显然这并不是想要的结果

解决 eval()函数

eval() [1] 函数可计算某个字符串,并执行其中的的 JavaScript 代码。

<ul class="testList">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>
<script>
    var testList = $(".testList li")
    var test0 = "变量0";
    var test1 = "变量1";
    var test2 = "变量2";
    var test3 = "变量3";
    for(var i=0;i<testList.length;i++){
      testList.eq(i).html(eval("test" + i))
    }
</script>

输出结果:

参考

[1]:JavaScript eval() 函数

原文地址:https://www.cnblogs.com/xiaodongxier/p/ru-he-rangjs-bian-liang-he-zi-fu-chuan-pin-jie-hou.html