主页 > 知识库 > 邪恶的eval和new Function使用介绍

邪恶的eval和new Function使用介绍

热门标签:铁路电话系统 呼叫中心市场需求 银行业务 检查注册表项 网站文章发布 智能手机 美图手机 服务器配置

代码:

复制代码 代码如下:

// 友善提醒:为了你的手指安全,请在Chrome下运行
'alert("hello")'.replace(/.+/, eval);
'alert("hello")'.replace(/.+/, function(m){new Function(m)();});

var i = 0; eval(new Array(101).join('alert(++i);'));
var i = 0; new Function(new Array(101).join('alert(++i);'))();


解释:
1、string.replace(regexp, replacement): replacement可以是function. In this case, the function is invoked for each match, and the string it returns is used as the replacement text.

2、new Function(argument_names..., body): 注意参数中的body. 这样,用new Function('body')()
, 也可以像eval一样动态执行代码。

3、array.join(separator): 这个最简单,不多说。在这里,巧妙的用来解决了一个无聊问题:写段代码,运行后打印出从1到100的整数,不允许使用循环、跳转和递归。

这些代码可以干什么?可以肯定的是可以干很多猥琐的事。具体是啥呢,自己想啰。

您可能感兴趣的文章:
  • javascript使用eval或者new Function进行语法检查
  • 详解new function(){}和function(){}() 区别分析
  • function, new function, new Function之间的区别
  • Eval and new funciton not the same thing

标签:河南 红河 沈阳 乐山 沧州 新疆 上海 长治

巨人网络通讯声明:本文标题《邪恶的eval和new Function使用介绍》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266