我是靠谱客的博主 孤独中心,最近开发中收集的这篇文章主要介绍JS 里面的 eval() 函数的作用和报错之后的处理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

点击打开链接 :给推荐几个对程序员来说神器般存在的软件


作用:

将服务器端构建好的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


参考链接:点击打开链接

地址:http://www.jb51.net/article/40842.htm




最后

以上就是孤独中心为你收集整理的JS 里面的 eval() 函数的作用和报错之后的处理的全部内容,希望文章能够帮你解决JS 里面的 eval() 函数的作用和报错之后的处理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部