使用单个或多个var语句声明变量.性能明智

Declaring variables using single or multiple var statements. Performance wise

本文关键字:变量 声明 性能 语句 var 单个      更新时间:2023-09-26

(问题来自网站管理员)

有人曾经告诉我,使用一个var语句比使用多个var语句更有利于Javascript的性能。

// Version A. Allegedly Faster
var a = 1,
    b = 2,
    c = 3;
// Version B. Allegedly Slower
var a = 1;
var b = 2;
var c = 3;

背后的原因是:对于每个var语句,Javascript将开始分配内存,然后在分号处停止。然而,如果你只有一个var语句,许多JS实现将优化它,并在同一调用中为所有变量分配空间。

然而,当我在谷歌上确认这一点时,我只发现了一些人认为从维护的角度来看第二个例子更简单的抱怨。有些人不同意。这个JSPerf测试说明没有区别。

所以我的问题:从性能的角度来看,是否有任何理由版本a或B会更好?

(不写"var"声明确实节省了一些字节,但这是在向浏览器交付数据时。这个问题包括服务器端JS)

首先,如果不具体说明JavaScript的实现是什么,你的问题是无法回答的。性能不是语言所关注的,任何人都可以编写一个符合标准的JavaScript实现,其中单独的var语句会更慢,因为语言规范中没有指定性能特征。

你提到了服务器端,所以我假设V8,它有两个不同的JavaScript编译器。

第一个编译器将把源代码解析成AST,然后遍历树的节点,同时为每个树节点生成机器指令。所以不,var语句的语法形式不会影响这里的性能。

第二个编译器更聪明,花时间通过多种不同的表示(不仅仅是AST)来分析代码,以生成优化的代码。因为愚蠢的编译器已经可以看出代码具有相同的语义,聪明的编译器也可以,所以还是没有区别。

语义完全相同的语法差异通常不会有任何性能差异,除非存在错误。但这是一个微不足道的例子,所以我很难相信任何世界级的JavaScript实现都会在这里失败。