首页 > 其他 > 详细

eval是做什么的?

时间:2019-09-23 00:58:39      阅读:129      评论:0      收藏:0      [点我收藏+]

eval()的作用:

把字符串参数解析成JS代码并运行,并返回执行的结果;

例如:

eval("2+3");//执行加运算,并返回运算值。
eval("var age = 10");//声明一个age变量

eval的作用域

function a(){
   eval("var x=1");//等效于 var x = 1;
   console.log(x);//输出1
}
a();
console.log(x);//错误x没有定义

说明作用域在它所有的范围内容有效

示例2:

function a (){
   window.eval("var x= 1");//等效于window.x = 1;定义了全局变量
   console.log("x");//输出1
}
a();
console.log(x);//输出1

这段代码悲剧了?在IE8及IE8一下的版本就不支持了。 

技术分享图片

 

 解决方法:

functiona(){
 if(window.execScript){ // 支持IE8及以下的版本
  window.execScript("var x=1");
 }
 else{ //常用的浏览器都支持
  window.eval("var x=1");
 }
 console.log(x);
}
a();
console.log(x);

注意事项

应该避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行)。

其它作用

由JSON字符串转换为JSON对象的时候可以用eval,例如:

var json ="{name:‘Mr.CAO‘,age:30}";
var jsonObj = eval("("+json")");
console.log(jsonObj);

 

eval是做什么的?

原文:https://www.cnblogs.com/psxiao/p/11569954.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!