解决方案 »
- jquery,ext,mootool等流行框架的选择器性能比较
- JS数组问题
- 这个数字怎么截取
- 你怎么看待web前端开发工程师这一行业的?
- 有一文本框,点击文本框弹出一新窗口,在新窗口里编辑,然后赋值给这个文本框!
- form.all.tags("input");提示Uncaught TypeError: Cannot call method 'tags' of undefi
- 咋样根据下拉框的内容变动文本框的内容?
- 正则表达式??
- 还原JS代码
- 想请教下,这句话怎么理解?fromElement对于 onmouseover 和 onmouseout 事件
- 关于Chrome下获取元素宽度高度问题
- [jquery] 选项卡问题,求助高手
是说这种写法查找global作用域.但是用ie内核试了一下发现两个都是3. 估计不同内核的解释不一样, 所以...少用吧
(1, eval)('...')
(eval, eval)('...')
(1 ? eval : 0)('...')
(__ = eval)('...')
var e = eval; e('...')
(function(e) { e('...') })(eval)
(function(e) { return e })(eval)('...')
(function() { arguments[0]('...') })(eval)
this.eval('...')
this['eval']('...')
[eval][0]('...')
eval.call(this, '...')
eval('eval')('...')那么,根据ES5的标准,间接调用方式保证代码运行在全局作于域内,既然如此,自然输出1具体介绍,你可以查看 http://perfectionkills.com/global-eval-what-are-the-options/#evaling_in_global_scope
Well, the Ecma spec considers a reference to eval to be a "direct eval call", but an expression that merely yields eval to be an indirect one -- and indirect eval calls are guaranteed to execute in global scope.
var $ = 1;
(function() {
var $ = 2;
(function() {
var $ = 3;
(eval)('console.log($)'); //这里显示 3
(0, eval)('console.log($)'); //这里显示 1,(0,eval)这么写为什么会查找顶级作用域的变量? //因为这等价于:
var temp = (0,eval);
temp('console.log($)'); //temp使用了global作为执行上下文,而非当前的执行上下文
})();
})();
http://kuai.xunlei.com/d/hjQECcTLkL0iUwQA161版主、管理员一生平安!!!!谢谢!