栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

eval()和new Function()是同一件事吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

eval()和new Function()是同一件事吗?

不,他们 一样。

  • eval()
    在当前执行范围内将字符串评估为Javascript表达式,并且可以访问局部变量。
  • new Function()
    将存储在字符串中的Javascript代码解析为一个函数对象,然后可以调用该对象。它无法访问局部变量,因为代码在单独的范围内运行。

考虑以下代码:

function test1() {    var a = 11;    eval('(a = 22)');    alert(a); // alerts 22}

如果

new Function('return (a = 22);')()
使用,则局部变量
a
将保留其值。但是,诸如Douglas
Crockford之类的一些Javascript程序员认为,除非绝对必要,否则都不应该使用它们,并且对不可信数据进行逃避/使用构造函数是不安全且不明智的。
Function



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596825.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号