Javascript 评估功能、评估后的性能

Javascript 评估功能、评估后的性能,javascript,Javascript,我们都知道守则: var ssum = function(a,b) { return a+b; } 执行速度比 eval("var esum = function(a,b) { return a+b; } "); 原因很多 我想知道的是,如果一个函数是通过求值字符串创建的,那么它的性能会比一个函数差 对于上面的例子,它意味着:esum(1,1)会比ssum(1,1)慢吗 我想要一个答案,告诉我这是否取决于浏览器的实现 (如果是,原因是什么)以及性能是否取决于eval ed函数引用的变量 非

我们都知道守则:

var ssum = function(a,b) { return a+b; } 
执行速度比

eval("var esum = function(a,b) { return a+b; } ");
原因很多

我想知道的是,如果一个函数是通过求值字符串创建的,那么它的性能会比一个函数差

对于上面的例子,它意味着:esum(1,1)会比ssum(1,1)慢吗

我想要一个答案,告诉我这是否取决于浏览器的实现 (如果是,原因是什么)以及性能是否取决于eval ed函数引用的变量

非常感谢,,
Lx

一旦js代码被求值,它就会被转换成javascript(“javascript本机”或“编译”)代码(在您的例子中,情况并非总是如此,因为求值会求值一个表达式,其结果可能是一个数字)

之后,它们是普通的“ol”javascript对象(函数或其他)。所以两者之间应该没有区别

即使是规范(第10.4.2节)也没有提到这种情况