最大 JavaScript 性能
封面图片由 Fachstelle für Öffentliche Bibliotheken NRW 在 Flickr 上提供。
如果你和我一样,你可能会经常思考如何让你的软件变得更好。其中一个重要的原因就是将性能提升到极致。今天,我将告诉你高级 JS 开发人员对你隐瞒的性能秘密。
1. 仅限全局变量
阴影会使软件的金属模型变得混乱,而且您经常需要访问在启动项目时未曾预料到的内容。如果您始终重复使用全局命名空间,就可以避免内存混乱。
// instead of
const a = "Hello";
const b = "World";
// write
a = "Hello";
b = "World";
2. 短变量名
永远不要让变量的长度超过上限,解析时间是现代 JavaScript 中的一个大问题,因此只有当全局命名空间最终已满时,才对变量名使用多个字母。
// instead of
loginTimeout = 2300;
// write
a = 2300;
3. 不要使用函数
函数是万恶之源!它们不仅会通过间接寻址增加代码的负担,还会降低代码的运行速度。所以,如有疑问,请务必将代码内联化。
// instead of
const substract = (x, y) => x - y;
a = substract(2000, substract(500, 50));
// write
a = 2000 - (500 - 50);
4.setTimeout
一路
你经常需要快速完成任务,而同步方法并不适用。最好的办法是用setTimeout
调用代替所有循环,这样事件循环就能处理所有事情。
// instead of
let x = 1;
while (x < 1000) {
console.log(x);
x++;
}
// write
x = 1;
const fastLoop = () => {
console.log(x);
x++;
if (x < 1000) setTimeout(fastLoop, 1);
}
fastLoop();
5. 通过以下方式访问对象with
如果你写过大量有意义的 JavaScript 代码,那么你很可能最终会遇到需要深入研究的庞大对象。如果能摆脱这些拖慢你代码速度的点运算符,岂不是更好?点运算符with
已经帮你搞定了。解析的代码越少,代码运行速度就越快。
// instead of
console.log(u.profile.name);
console.log(u.profile.birthday);
console.log(u.profile.town);
// write
with(u.profile) {
console.log(name);
console.log(birthday);
console.log(town);
}
7. 缓存随机性
去下一家桌游商店买一袋骰子。它们能帮你得到随机值,你可以把它们缓存在常量中以备后用。计算随机值相当慢,应该静态地进行。
// instead of
myRandomNumber = Math.random();
// write
r = 17;
结论
有很多简单的方法可以加速你的代码,即使是初学者也能做到。现在已经是2018年4月1日了,所以我不明白为什么我们要忍受缓慢的软件。
愚人节快乐!
文章来源:https://dev.to/kayis/maximum-javascript-performance-4l65