JS 里面的 eval() 函数的作用和报错之后的处理 标签: javajavascript 2016-11-15 19:36 183人阅读
将服务器端构建好的JSON数据转化为可用的JavaS
使用时候报如下错误:
Uncaught SyntaxError: Unexpected token :
这是因为json字符串里面的value的值里面包含:冒号,所以在转化的时候出现错误。
如下格式就不会报错了。
objJson = eval("("+objJson+")") ;
添加上括号
"("+ objJson +")"
这个就转化ok
在转化的时候需要将JSON字符串的外面包装一层圆括号
var jsonObject =eval("("+ jsonFormat +")");
为什么要加括号?
加上圆括号的目的是迫使ev
举一个例子,例如对象字面量{},如若不加外层的括号,那么ev
alert(eval("{}");// return undefined
alert(eval("({})");// return object[Object]
2.另一个作用
eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。
抛出异常的几种情况
如果参数中没有合法的表达式和语句,则抛出 SyntaxError 异常。
如果非法调用 eval(),则抛出 EvalError 异常。
如果传递给 eval() 的 Javascript 代码生成了一个异常,eval() 将把该异常传递给调用者。
<script type="text/javascript"> eval("x=10;y=20;document.write(x*y)") document.write(eval("2+2")) var x=10 document.write(eval(x+17)) </script>
输出:
200 4 27