(0,eval)('this')与eval的区别
看doT源码的时候,看到了这么一句代码:
global = (function(){ return this || (0,eval)('this'); }()); global.doT = doT;
需要||后面的部分,是因为,this返回的是undefined
但是(0, eval)('this')有点困惑
这个链接大致说明了差别,多方考证,总结一下
1.在ecma规范中,eval存在直接调用和间接调用两种方式,而直接调用时上下文为当前执行环境,间接调用时上下文为全局环境
2.直接调用eval时,为直接调用,而使用表达式计算得到的eval是间接调用
这样就很明了了,eval('this')和(0,eval)('this')的区别是,一个是在当前执行环境下,一个是在全局执行环境下,后面的调用方式才可百分百确定指向的是全局宿主对象
转载于:https://www.cnblogs.com/strayling/p/3763792.html
(0,eval)('this')与eval的区别相关推荐
- 【Pytorch】model.train()和model.eval()用法和区别,以及model.eval()和torch.no_grad()的区别
model.train() 启用 Batch Normalization 和 Dropout 如果模型中有BN层(Batch Normalization)和Dropout,需要在训练时添加model. ...
- Pytorch:model.train()和model.eval()用法和区别,以及model.eval()和torch.no_grad()的区别
model.train()和model.eval()的区别主要在于Batch Normalization和Dropout两层. model.train() 官方文档 启用 Batch Normaliz ...
- Python eval 与 exec 函数的区别 - Python零基础入门教程
目录 一.Python eval 与 exec 函数的区别 二.价值 10 个亿的智能机器人核心代码 三.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Py ...
- 一些数据格式化-Eval( )和DataBinder.Eval(Container.DataItem, )的区别及用法
ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldn ...
- float和eval在python中的意思_Python3中,eval和float有什么区别
>>> x = 1 >>> eval("x + 1") # 注意:"x + 1"是字符串 2 >>> e ...
- 标准的JS里,eval和window.eval属于不同的语法!
最近写的一个脚本里需要在全局下执行代码.这个例子以前见到过,在IE6,7,8下用window.exeScript方法,其他则调用window.eval方法即可. 看似很简单,运行也正确.eval声明的 ...
- eval函数python_Python eval()函数
eval函数python Python eval() function is used to parse an expression string as python expression and t ...
- http1.0 http1.1 http2 之间的区别
一.HTTP基础 1.1 HTTP定义 HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议. 1.2 HTTP发展史 ...
- ajax eval html,Ajax eval的应用示例
Ajax eval的使用示例 (1)eval基本语法: eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. ...
- php eval 二进制,PHP eval函数使用介绍
代码: eval("echo'hello world';"); 上边代码等同于下边的代码: echo"hello world"; 在浏览器中都输出:hello ...
最新文章
- 范式青春er,寻找同行的你!
- 主要垃圾回收器和垃圾回收算法
- [Qt教程] 第34篇 网络(四)FTP(二)
- python批量转换图片格式_python批量将图片转换为JPEG格式
- 无向简单图怎么判断_bfs----判断无向简单图中任意两点是否连通
- oracle去除表中字段中特殊符号('tab','空格','换行符','回车')——目前没找到可以一次性替换表中所有异常数据的方法,只能对字段逐一去除,如果有还希望留言赐教
- 【讨论】测试工程师能否作为一份终生职业?30岁+怎么办?
- python实现搜狗新闻挖掘(一)
- 计算机怎么制作个人简历表步骤图片,教你如何制作个人简历表格!ppt课件
- VirtualDub
- 简述igp和egp_路由协议的常见分类——GGP、EGP和IGP介绍
- word2016拼音指南功能无效解决方案
- 亚马逊云科技在中国市场火了?真相令人想不到
- matlab最优轨迹规划,matlab机器人轨迹规划
- LDAP目录服务折腾之后的总结
- jquery多属性选择器
- 100天单词学习计划
- 麒麟搭建ftp服务器实现文件共享,麒麟系统安装ftp
- 腾讯资深产品经理谈敏捷开发于游戏
- OBD-II协议对比介绍
热门文章
- double类型最大值_2020重新出发,JAVA入门,数据类型
- 解压tar.xz文件
- onbeforeedit和onbeginedit数据不一致_深度解读,奔溃一致性、应用一致性的区别
- 【java】为什么 HashMap 的加载因子是0.75?
- 02-伪异步I/O通讯模型
- 【高并发】JUC中的循环栅栏CyclicBarrier的6种使用场景
- 【Elasticsearch】es 别名可写 索引可写 傻傻分不清
- 【Kafka】Kafka IllegalArgumentException: Could not find a ‘KafkaClient‘ entry in the JAAS configuratio
- 【Flink】Flink TimeServer 之 timerService().registerProcessingTimeTimer
- Spring : spring的aware