Javascript 为什么大多数游戏/图形js代码使用var而不是更现代的语法?
我已经做了几年js开发人员了。我最近进入了图形/webgl编程和游戏引擎等领域。无论我去哪里看,大多数代码都避免使用较新的语法,例如Javascript 为什么大多数游戏/图形js代码使用var而不是更现代的语法?,javascript,ecmascript-6,three.js,ecmascript-5,babylonjs,Javascript,Ecmascript 6,Three.js,Ecmascript 5,Babylonjs,我已经做了几年js开发人员了。我最近进入了图形/webgl编程和游戏引擎等领域。无论我去哪里看,大多数代码都避免使用较新的语法,例如()=>{},let,const等。几乎只使用var,functioncallbacks等。在我看到的许多支持回调的示例中,甚至连承诺都没有 引用的示例,如所有的three.js文档、babylon.js文档、stack.gl示例、pixi.js、phaser和大多数游戏代码似乎都使用了这种旧式代码。现在,诚然,这些框架中的一些已经非常成熟了,但是由于新的语法已经变
()=>{}
,let
,const
等。几乎只使用var
,function
callbacks等。在我看到的许多支持回调的示例中,甚至连承诺都没有
引用的示例,如所有的three.js文档、babylon.js文档、stack.gl示例、pixi.js、phaser和大多数游戏代码似乎都使用了这种旧式代码。现在,诚然,这些框架中的一些已经非常成熟了,但是由于新的语法已经变得更加普遍,所以已经添加了一些示例和特性
这有什么特别的原因吗?我可以想到几个潜在的原因(尽管无法确认):
- 浏览器中是否对var进行了更深入的优化?(考虑到
在用法和生命周期方面具有一定程度的语义,我对此表示怀疑),并且箭头函数没有const
这种
上下文。诚然,并不是每个人都可以使用更新的语言特性,但对于代码可读性来说,这些特性会带来好处,不是吗
- 在优化方面,使用较新的语法和转换到较旧的样式会受到影响吗?我是基于这样一个假设,即你对最终输出的控制力没有那么大。然而,我会假设大多数透明引擎,如巴贝尔等,都是在考虑到这一点的情况下构建的?然而,在一般情况下,是否值得避免图形/游戏代码尽可能多的透明化