eval和new Function的区别 1,解析的时候,作用域不一致 eval在当前的作用域,而new Function在全局 2,用法 如存在 var aa = { fun: 'function(){console.log(this)}' } 如需要执行fun的字符串函数 A,eval() eval('(function(){return ' + aa.fun + '})()') B,new Function() new Function('retur...
eval和new Function都可以动态解析和执行字符串。但是它们对解析内容的运行环境判定不同。 1 2 3 4 5 6 7 vara ='global scope' functionb(){ vara ='local scope' eval('console.log(a)')//local scope ;(newFunction('','console.log(a)'))()//global scope } b() eval中的代码执行时的作用域...
从输出结果可以看出,new Function访问到的始终是全局作用域中的变量;eval访问到的则是当前作用域中的变量。 当然如果使用的是window.eval()或者global.eval()那么访问到的也始终是全局作用域中的变量 let foo = "foo"; function bar() { let foo = "bar"; window.eval("console.log(foo)"); // 输出foo...
1、作用域不同。在以下例子中eval()和new Function()同样都是解析的字符串str1,但是结果却是不一样,eval访问的是局部变量,new Function则访问的是全局变量。 varstr="111";functionshow(){varstr="222";varstr1="console.log(str)";eval(str1);//222newFunction("return "+str1)();//111 注:因为ret...
new Function和eval的区别 eval中的代码执行时的作用域为当前作用域。它可以访问到函数中的局部变量。 let a = 1 let fn = function(){ let a = 2 let result1 = new Function('console.log(a)') let result2 = eval('console.log(a)') //打印出2...
51CTO博客已为您找到关于js new function 性能eval的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及js new function 性能eval问答内容。更多js new function 性能eval相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。
//new Function时间为:1372 //经过测试结果 IE8效果如下 //eval 时间为:913 //new Function时间为:1037 //经过测试结果 Chrome效果如下 //eval 时间为:211 //new Function时间为:251 //经过测试结果 Opera //eval 时间为:384 //new Function时间为:1024 测试结果为不同浏览器测试的参考数据,觉得奇怪...
由一道题目引发的思考:eval能访问上下文,new Function只能构建自己的一个私有作用域。 new Function()的用法: 最后一个参数是函数的 body(函数体),类型为 string; 前面的参数都是 索要构造的函数的参数(名字) varfn=newFunction('a','b','return a * b'); ...
eval能访问上下文,new Function只能构建自己的一个私有作用域。更新,注释一下var a, b, c;(function() { // eval('var b = 2'); // 调用当前作用域 var b = 2; // (1, eval)('var c = 3'); // 逗号操作符,括号表达式,返回的是最后一个挂载在window上的...