组合成了字符串str,下一步就是eval方法转换成对象了<script type="text/javascript">
var a=50,b="xxx";
var str="{id:"+a+",name:'"+b+"'}";
arr=eval('('+arr+')')
alert(arr.name);
</script>这里会报出一个错,xxx未定义,求各位牛人帮忙解释一下???
十万火急

解决方案 »

  1.   


    var a=50,b="xxx";
    var str="{id:"+a+",name:'"+b+"'}";
    var arr=eval('('+str+')')
    alert(arr.name);
      

  2.   

    #1楼
    我试过了,会出现一个错误就是 xxx 未定义,为什么会出现这个错误????
      

  3.   


    <script type="text/javascript"> 
    var a=50,b="xxx"; 
    var str="{id:"+a+",name:'"+b+"'}"; 
    var arr
    eval("arr=" + str);
    alert(arr.name); 
    </script>
      

  4.   

    楼上的貌似都错了 应该写成 b="'xxx'";
    这样才对。
      

  5.   

    var a=50;
    var b="xxx"; 
    var str="{id:"+a+",name:'"+b+"'}"; 
    arr=eval("arr=" + str) 
    alert(arr.name); 不同类型的变量不能在同一行定义
      

  6.   

    楼主手误而已。
    arr=eval('('+arr+')')
    ==应为==
    arr=eval('('+str+')')
      

  7.   

    7楼细心,呵呵。
    另外:
    <script type="text/javascript">
    var a=50,b="xxx";
    var str="{id:a,name:b}";//这样就可以了
    var arr=eval('('+str+')')
    alert(arr.id);
    alert(arr.name);
    </script> 
      

  8.   

    <script type="text/javascript"> 
    var a=50,b="xxx"; 
    var str="{id:"+a+",name:'"+b+"'}"; 
    arr=eval('('+str+')') 
    alert(arr.name); 
    </script>这样就OK了