【发布时间】:2018-05-05 20:01:33
【问题描述】:
我阅读了以下关于 V8 引擎和 javascript 优化的文章。
How JavaScript works: inside the V8 engine + 5 tips on how to write optimized code
根据上面的文章,这些是推荐的:
一个。 V8 引擎使用隐藏类和隐藏类和属性的缓存机制。所以避免动态添加对象属性,避免动态改变属性的类型。而是使用对象构造函数。
b. V8引擎对常用功能进行了更多优化。所以避免生成许多只执行一次的不同的相似表单函数。而是编写代码来重复执行相同的功能。
那么,我有 3 个问题:
我。 'a' 和 'b' 是否可以应用于其他浏览器的 javascript 引擎,例如 firefox 的 SpiderMonkey?
二。根据'a',使用打字稿对v8引擎优化更有优势? (使用 typescript,您可以生成更少动态变化的对象和属性的 javascript 代码)
三。现代 JavaScript 代码使用了许多具有相似形式的内联和匿名函数,如下面的示例代码。根据'b',使用单个预定义函数更有利吗? (此示例代码非常简化,以显示多次使用的类似表单功能)
prm.then((res) => {
console.log(res);
}).then((res2) => {
console.log(res2);
}).catch((err) => {
console.log(err);
});
【问题讨论】:
-
如果到达第一个
then(),则该示例链将为第二个then()记录undefined。我明白你的意思,重复相同实现的多个内联函数不是一件好事。 -
@PatrickRoberts:是的。上面的代码是非常简化的例子。
-
B) 没有意义。编写尽可能频繁地运行的代码。如果它只运行一次,那么速度无论如何都无关紧要。
-
@Bergi 我同意您的评论,但您的评论对我的问题没有帮助。这种矛盾的情况可能是我的英语不够造成的。请阅读文章(链接在我的问题中)并理解我的问题的意图。
-
@pdh0710 请edit你的问题解释一下你认为矛盾的地方
标签: javascript typescript optimization v8