使用ES6简写语法是否增加了抽象层,从而减慢了解释器的速度?
如果你看:
const myFunction = (myPar) => {...);
与
const myFunction = myPar => ...;
您可能会认为,在解释第二个示例之前,首先需要将其转换回“常规”Javascript。如果是这样的话,是否最好避免呢?
。
如果我犯了什么错误,或者这个问题太琐碎,请纠正我。
发布于 2020-12-18 21:07:09
是否使用ES6简写语法增加了抽象层,从而减慢了解释器的速度?您可能会认为,在解释之前,需要先将其翻译回“常规”Javascript。
不是的。首先也是最重要的,ES6是常规的JavaScript,并且已经存在了5年多。
但实际上,JavaScript引擎所解释的并不是作为文本的源代码,也没有从一种格式到另一种格式的翻译。解释器将文本解析为某种中间表示,然后执行该表示。定义函数的所有不同方法都直接被解析成相同的中间表示(除了执行需要遵循的细微语义差异的标志)。
发布于 2020-12-18 20:08:53
首先,在ES6中没有这样的函数定义语法。
const myFunction = (myPar) => {...); // As there is No closing bracket at the end如果你指的是带结束括号的const myFunction = (myPar) => {...};。
然后你的下一个函数,也就是
const myFunction = myPar => ...;和第一个类似。只是它有一个implicit return。因此,第二个函数具有隐式返回,第一个函数将需要一个return关键字来显式地返回任何值。
是的,在abstraction箭头函数语法中不存在这样的附加ES6 :)因此,根本没有性能问题。
https://stackoverflow.com/questions/65362899
复制相似问题