使用单个或多个var语句声明变量.性能明智
Declaring variables using single or multiple var statements. Performance wise
(问题来自网站管理员)
有人曾经告诉我,使用一个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实现都会在这里失败。
相关文章:
- 使用同一对象中的其他变量声明变量
- 如何将变量声明为全局变量
- 如何将变量声明为全局变量?用case foreach?Javascript
- 理解bootstrap.js变量声明
- 将 Javascript 变量声明为 PHP 形式
- 单个逗号分隔的变量声明和多个声明之间的区别是什么
- Do变量声明初始化函数
- Javascript变量声明:什么是“;var myVariable={}”;
- javascript中不同类型的变量声明
- 为什么在循环的Javascript中包含变量声明
- for 循环中必需的变量声明
- JavaScript 中的变量声明
- 在 Javascript 变量声明中使用逗号
- 你能在变量声明中添加条件吗?
- JavaScript 全局变量声明
- 节点.js变量声明和作用域
- 具有多个逗号分隔值的变量声明是什么意思(例如 var a = b,c,d;)
- 移动图像 ..JavaScript 将变量声明为字符串
- 让 javascript 将(默认情况下)未声明的变量声明到当前本地范围(基于首次使用)而不是全局范围
- 循环中的变量声明