【JavaScript】关于eval( )

为什么80%的码农都做不了架构师?>>>   hot3.png

一、eval() 动态执行时使用当前函数的闭包。
var i = 100;
function myFunc(ctx) {var i = 'test';eval('var test = "hello."');  //test执行后为局部变量
}
myFunc();
// 输出值100
alert(i);
二、eva l() 访问全局闭包:

1、IE内核环境下:
      在 Internet Explorer 中的 JScript 的 eva l() 下,无 论是使用 window.eva l 调用,还是使用 window 作为传入的 this 实例,都不可能让 eva l()  得到访问全局闭包的能力。不过 JScript 中可以使用另一种方法来 得到完全相同的效果,即在 window.execScript() 方法中执行的代码“总是”在 全局闭包中执行。
// 本例建议在Internet Explorer 环境中测试
var i = 100;
function myFunc() {window.execScript('i = "test"');//execScript('i = "test"');
}
myFunc();
// 输出值'test', 表明调用myFunc()时修改了全局闭包中的变量i
alert(i);
      而且, JScript   运行在名为 ActiveScript 的脚本环境中,该 execScript() 方法也提 供跨脚本语言的代码能力。因此也可以在第二个参数中指定语言的种类。
execScript('i = "test"', 'JScript');
或
execScript('dim i = "test"', 'VBScript');
2、非 IE内核环境下:
// 本例建议在mozilla firefox 环境中测试
var i = 100;
function myFunc() {window.eval('i = "test"');//eval.call(window, 'i = "test"');
}
myFunc();
// 输出值'test', 表明调用myFunc()时修改了全局闭包中的变量i
alert(i);
三、解决eval作用域的方法:
with ( objContext )eval (strScript) 。  
with ( window )eval (strScript) ; //eval在 全局作用域中执行
四、使 用eval()来获取“对象直接量”:
// 用eval()来获取“对象直接量”的正确方法, 返回对象
alert( eval('({  name: "MyName", value: 1 })' )); //注意外层的括号({ name: "MyName",value: 1 })
五、使用eval() 获取匿名函数:
var func = eval(' (function() { })');
// 输出'undefined'
alert(typeof func);
var func;
eval( 'function func() { }' );
// 输出'function'
alert(typeof func);
必须使用匿名函数的情况:
//var func = eval(' (function() { }).prototype.constructor ');
//var func = eval('( {$:function() { }}).$');
// 或
var func = eval(' [function() { }][0]');
// 输出'function'
alert(typeof func);

转载于:https://my.oschina.net/aram/blog/114537

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293979.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在ASP.Net Core和JAVA中,使用Azure配置密钥——Key Vault

思路浅析 在软件开发中,项目安全是重中之重,特别是在多部门或者开源项目中,如何保存我们的密钥,但又不影响本地的开发,更需要我们开发者需要考虑的问题,这里简单的列举了下平时开发中我们做的…

我怀疑对象做了什么对不起我的事......

1 狗狗已经这么明显提醒你了▼2 传销老总都怕的传销......▼3 和一只狗撞衫了▼4 你信吗?我跳水不会湿头发!▼5 东北雪糕行业繁荣的原因还挺在理▼6 打了个平手?▼7 缅甸网红苏娜英腰围35公分她还想减▼8 哈哈哈哈▼你点的每个赞&…

记一次 .NET 某市附属医院 Web程序 偶发性CPU爆高分析

一:背景 1. 讲故事这个月初,一位朋友加微信求助他的程序出现了 CPU 偶发性爆高,希望能有偿解决一下。从描述看,这个问题应该困扰了很久,还是医院的朋友给力,开门就是 100块 红包 🤣&#x1f923…

[iOS]应用内支付(内购)的个人开发过程及坑!

本文基于XcodeVersion 7.3 (7D175)版本,手机是iPhone 6,9.3系统。 一. 创建测试App 首先你需要登录 App的ItunesConnection,你会看到如下界面 简单的介绍一下这几个选项 1.我的App主要用于管理自己的App应用,例如编辑资料&…

农商银行招聘计算机人员考什么,农商银行招聘考试题都考什么?

整理了农商农商一、行政职业能力测试类农商银行行测考试题型主要以选择题形式出现。主要包括言语理解、数量关系、判断推理、资料分析、常识五大部分。二、英语类农商银行考试英语部分:一般银行英语考试内容包括英语词汇与语法、英汉互译、改错、完型填空和阅读理解…

讲一讲应用服务的新鲜事儿

微软中国MSDN 点击上方蓝字关注我们为了新功能的发布,以及 Linux 和 Windows 的改进,Azure App Service 团队付出了非常多的努力。很开心的是,我们看到了 Windows Containers 的正式版本,并可应用于 App Service 环境 v3 上。此外…

iOS中的动画

2019独角兽企业重金招聘Python工程师标准>>> iOS中的动画 Core Animation Core Animation是一组非常强大的动画处理API,使用它能做出非常绚丽的动画效果,而且往往是事半功倍,使用它需要添加QuartzCore .framework和引入对应的框架<QuartzCore/QuartzCore.h>…

全世界70亿人同时起跳,地球会天崩地裂?答案可能让你难以置信

全世界只有3.14 % 的人关注了爆炸吧知识地球表示微微一笑不得不说&#xff0c;模友们的脑袋里总是充满了奇思妙想&#xff0c;比如超模君最近就收到了这么个问题&#xff1a;首先&#xff0c;这问题真就属于一看很有趣&#xff0c;细想全是BUG的那种。且不说怎么让70亿人同时聚…

2021.NET Conf China上的GraphQL

今天给大家分享.NET中的GraphQL&#xff0c;半个小时&#xff0c;没有把所有的代码敲出来&#xff0c;高估了自己的写码速度&#xff0c;所以通过这个文章分享出来。1、核心PPT2、主要代码using Conf2021GraphQL; using Conf2021GraphQL.Models; using Microsoft.EntityFramewo…

Rust 社区求变,PHP 大旗不倒?

文 | 一君出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013&#xff09;上月底发生了两件开源语言相关的大事。一是 JetBrains 牵头成立 PHP 基金会&#xff0c;希望能确保语言的长寿和繁荣。二是 Rust 审核团队集体辞职&#xff0c;理由是 Rust 核心团队造成了“寡头…

centos安装vsftp后的虚拟用户设置

2019独角兽企业重金招聘Python工程师标准>>> 安装好vsftpd之后&#xff0c;有的时候需要配置虚拟用户&#xff0c;可以先写一个login.txt&#xff0c;奇数行为用户名&#xff0c;偶数为用户名密码&#xff0c;例如: user1 password1 user2 password2 然后将其生成文…

2021 .NET 开发者峰会顺利在网上落幕,线上直播回看汇总

.NET Conf China 2021 是面向开发人员的社区峰会&#xff0c;基于 .NET Conf 2021的活动&#xff0c;庆祝 .NET 6 的发布和回顾过去一年来 .NET 在中国的发展成果展示&#xff0c;它是由中国各地区的技术社区共同发起举办、知名企业和开源组织联合协办&#xff0c;是年度国内规…

使用 HP 3PAR Peer Persistence 实现 vSphere Metro Storage Cluster (vMSC)

配置图示如下&#xff1a;测试结果方案HP 3PAR StoreServ Storage 系统行为VMware HA 行为单个阵列主机路径故障主机使用备用路径来维护卷访问。未观察到影响单个阵列节点故障主机使用站点上未出现故障的阵列节点的备用路径来维护卷访问。未观察到影响单个存储站点间链路故障无…

java反射--注解的定义与运用以及权限拦截

自定义注解类编写的一些规则: 1. Annotation型定义为interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是接口. 2. 参数成员只能用public或默认(default)这两个访问权修饰 3. 参数成员只能用基本类型byte,short,char,int,long,floa…

微信公众平台消息接口开发(2)-封装weixin.class.php

微信公众平台消息接口开发&#xff08;2&#xff09;-封装weixin.class.php 一、封装weixin.class.php 由于微信公众平台的通信使用的是特定格式的XML数据&#xff0c;每次接受和回复都要去做一大堆的数据处理。 我们就考虑在这个基础上做一次封装&#xff0c;weixin.class.php…

这个外挂要上天了!教一千遍都不会的数理技巧,还不如搞懂最根本的概念!

▲ 点击查看数理化的学习对于很多孩子&#xff0c;包括家长都是一个大难题。比如&#xff0c;我们要教孩子认识动物&#xff0c;一般是要给孩子看动物的图片或实体&#xff0c;孩子自然就对这个动物有个认知。要教孩子数字&#xff0c;就会用一件玩具、两个苹果这种和现实有关联…