这是JavaScript优化吗?

Fra*_*ort 2 javascript v8 spidermonkey chakra

有人可以解释一下下面这两个函数之间有什么区别吗?

我想知道JavaScript引擎是否在这里进行某种纳米优化.

function withoutVar() {                                                                                                                   
  return 'stackoverflow';                                                                                                                    
}
function withVar() {
  var result = 'stackoverflow';
  return result;
}
var a = withoutVar();
var b = withVar();  
Run Code Online (Sandbox Code Playgroud)

Jam*_*ice 7

一些引擎可以执行这样的优化.在谷歌关闭编译器肯定不会这样:

function withVar(){return"stackoverflow"}var a=withVar();
Run Code Online (Sandbox Code Playgroud)

速度几乎没有差异,但"优化"版本更短(因此客户端下载速度更快).以下是基准测试的结果:

在此输入图像描述

您可以看到"平面"版本(没有变量声明)稍微快一些(但是看一下每秒的操作 - 这是一个在速度方面甚至不值得考虑的优化).