javascript enval()函数与JSON 之间关系

不点 阅读:672 2021-03-31 22:23:16 评论:0

概念定义:

eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。enval()函数将把最后一个表达式或者语句所包含的值或引用作为返回值。

举例说明一:eval()------javascrit表达式

<!doctype html> 
<html lang="en"> 
 <head> 
  <meta charset="UTF-8"> 
  <meta name="Generator" content="EditPlus®"> 
  <meta name="Author" content=""> 
  <meta name="Keywords" content=""> 
  <meta name="Description" content=""> 
  <title>Document</title> 
 <script type="text/javascript">  
	var bar = 'bar'; 
	var foobar = eval('"foo" + bar'); 
	alert(foobar); 
</script>  
 </head> 
 <body> 
   
 </body> 
</html> 
效果展示:


疑问:var foobar = eval('"foo" + bar');如何理解?假设修改这句表达式会产生怎么样的一个结果?

我们开始回答第二个问题:如果我们把疑问中的那句代码修改为 var foobar = eval("foo" + bar);

效果展示:


返回的结果是我们最不愿意看到的,underfined.这是为什么了?这个我们的从eval()函数传递的参数可以找到答案。如下截图:


那朋友们,又有疑问了,为什么第一种写法又可以?这个需要各位朋友去百度和google,''与字符串的关系。这算留给大家的一个思考。


举例说明二:eval()------javascrit语句

源代码:

<!doctype html> 
<html lang="en"> 
 <head> 
  <meta charset="UTF-8"> 
  <meta name="Generator" content="EditPlus®"> 
  <meta name="Author" content=""> 
  <meta name="Keywords" content=""> 
  <meta name="Description" content=""> 
  <title>Document</title> 
 <script type="text/javascript">  
	var bar = 'bar'; 
	var foobar = eval('if(bar == "bar") {bar="foo-bar";} else {bar = "bar-foo";}'); 
	alert(foobar); 
</script>  
 </head> 
 <body> 
   
 </body> 
</html> 

效果展示:


eval和JSON

由于Ajax的兴起,JSON这种轻量级的数据格式作为客户端与服务器之间的传输格式逐渐地流行起来,进而出现的问题是如何将服务器端构建好的JSON数据转化为可用的JavaScript对象。利用eval函数无疑是一种简单而直接的方法。


结论

理解eval的工作原理,合理结合eval和json应用于JavaScript的数据传递和对象转换


标签:json
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号