JavaScript中eval函数的问题_javascript技巧
程序员文章站
2022-04-05 15:03:04
...
今天看代码,遇到一个eval函数的问题,到现在翻了很多博文,还是不是很懂eval函数,有个一直没法理解的代码如下:
/* var start = [] , end = [] , timings = []; */ function f(){ //模拟程序执行时间 var sum = 0; for(var i =0 ;i
如果我把上面的benchmark中的局部变量移到全局就一切正常.
这里的eval函数为何会产生这种效果?难道相当于将eval函数别名化了?
直接调用eval()时,它总是在调用它的上下文作用域内执行,也就是说他可以访问到repeat函数中的变量,访问不到benchmark函数中的变量,但是在函数中是能访问到全局作用域的变量的,所以你把start那些变量设置成全局变量后,又可以返回想要的结果了。
function repeat(n, action){ for(var i=0; i
repeat中访问不到start,end变量
上一篇: php的notice怎么关闭
下一篇: 如何禁止复制网站内容
推荐阅读
-
JavaScript中需要掌握的技巧
-
JavaScript中的apply()方法和call()方法使用介绍_javascript技巧
-
JavaScript中全局变量、函数内变量以及常量表达式的效率测试_javascript技巧
-
javascript中的array数组使用技巧_基础知识
-
Javascript-Mozilla和IE中的一个函数直接量的问题分析_javascript技巧
-
JS中confirm,alert,prompt函数区别分析_javascript技巧
-
深入理解Javascript中this的作用域_javascript技巧
-
Javascript中的相等与不等运算_javascript技巧
-
javascript 有用的脚本函数_javascript技巧
-
js从10种颜色中随机取色实现每次取出不同的颜色_javascript技巧