概述
将服务器端构建好的JSON数据转化为可用的JavaScript对象(另外简单的作用在下边)
使用时候报如下错误:
Uncaught SyntaxError: Unexpected token :
这是因为json字符串里面的value的值里面包含:冒号,所以在转化的时候出现错误。
如下格式就不会报错了。
objJson = eval("("+objJson+")") ;
添加上括号
"("+ objJson +")"
这个就转化ok
在转化的时候需要将JSON字符串的外面包装一层圆括号
var jsonObject =eval("("+ jsonFormat +")");
为什么要加括号?
加上圆括号的目的是迫使eval函数在评估JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。
举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:
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
转载于:https://www.cnblogs.com/jiangcq/p/7171801.html
最后
以上就是鲤鱼纸鹤为你收集整理的JS 里面的 eval() 函数的作用和报错之后的处理 ...的全部内容,希望文章能够帮你解决JS 里面的 eval() 函数的作用和报错之后的处理 ...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复