const在V8编译下的优化处理

354 阅读1分钟

const在V8编译下的优化处理

我们都知道,const声明的变量是不允许更改的,如果是原始值,则必须保持不变,如果是引用类型,则必须保持引用地址不变,并且在const声明变量的同时必须赋值。对此在编译的过程中可以直接把值进行填充,因为不必担心变量的值改变,对于let,var声明的变量就不能这么处理了,因为在代码执行过程中变量的值有可能会发生改变,所以编译后还是得用查询的方式去获取当时对应的值,const声明相对来说就能从这一点在编译的角度去优化,并且V8就是这么做的,所以对于确定后续不会更改的变量尽量使用const声明吧

由于const声明暗示变量的值是单一类型且不可修改,JavaScript运行时编译器可以将其所有实例都替换成实际的值,而不会通过查询表进行变量查找。谷歌的V8引擎就执行这种优化。

-JavaScript高级程序设计