这两个功能在后台执行相同的操作吗?(在单条语句中)
var evaluate = function(string) {
return eval('(' + string + ')');
}
var func = function(string) {
return (new Function( 'return (' + string + ')' )());
}
console.log(evaluate('2 + 1'));
console.log(func('2 + 1'));
不,他们 不 一样。
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
问题内容: 注释和注释是否做相同的事情?我知道后者只是在Java 7中引入的。我很好奇,因为我们最近在服务器上将Java 7升级到了Java 7,所以我想知道Hibernate是否可以在任何一个注释中都起作用。 问题答案: 正如@Wundwin Born之前所说: javax.persistence.transient将确保Hibernate将忽略该特定字段并将其保存到db中,反之亦然。 java
从这个留档: RxJS为JavaScript引入了一个新的Push系统。可观察对象是多个值的生产者,将它们“推送”给观察者(消费者)。 订阅可观察对象类似于调用函数。 要调用可观察对象,我们应该从可观察对象本身调用函数,并将观察者作为可观察对象提供的数据的使用者传递,如: 本文件还说明: 什么是观察者?观察者是被观察者所传递价值的消费者。观察者只是一组回调,每个回调对应于被观察者发送的每种类型的通
在我的计算机科学课上浏览LinkedList java类,我想知道是否声明与
它可能会引起某人的兴趣并节省几个小时,这是一个令人讨厌的捆绑问题,eval来自一个文件,函数来自第二个文件。 将导致:未捕获的类型错误:评估(...)不是一个函数 这就是解决办法 缺少分号,我在JS optional中读了几遍该分号。 为什么eval不是此上下文中的函数?
本文向大家介绍C#中的委托是什么?事件是不是一种委托?事件和委托的关系。相关面试题,主要包含被问及C#中的委托是什么?事件是不是一种委托?事件和委托的关系。时的应答技巧和注意事项,需要的朋友参考一下 委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的指针。 委托和事件没有可比性,因为委托是类型,事件是对象,下面说的是委托的对象(用委托方式实现的事件)和(标准的event方式实
谁能解释一下为什么numpad keyup和keydown事件返回不同的键值? 考虑一下这个: 我本来以为每个事件都会为键降和键增返回相同的键值,但相反,我得到了下面的输出(在按0,1,2,8和9之后): 按键:代码:96,按键:0<br>按键:代码:96,按键` keydown:代码:97,密钥:1 keyup:代码:97,密钥:a 向下键:代码:98,键:2 向上键:代码:98,键:b 按键: