- V8 加持下 JS 性能也变得更加强大了
- try catch 问题, 前端在 V8 优化之前捕捉异常性能不搞,必须使用的地方要把代码逻辑封装在函数中 try 住函数而不是代码块,降低性能损失(或者使用函数守卫,对每一个有异常的点给与判断)
- 现代前端框架采用了很多异常捕获的方式,结合 async 和 await,node8 之后对 try 内部函数的性能损耗可以忽略不计
- 解决 delete 性能问题
- 该 delete 的地方可以不用写成 undefined 了,以提升性能为代价降低代码可读性
- arguments 对性能影响忽略, 推荐使用箭头函数书写成员函数,减少 this 的疑惑
- 函数调用对性能影响越来越小,不需要过于担心注释和空白,函数间调用问题
- 32/64 位数字计算性能。尽量用字符串处理大数(BigInt)
- 遍历 Object
- 基本用法
for in
Object.keys()
Object.values()
v8 中for in
更慢,警惕过早优化
- 基本用法
- 创建对象
- 多态函数性能问题
- 尽量让对象内部属性单态,如尽量不要对字符串数组 push 一个数字
- v8 优化带来一些 js 性能改变,但是 js 性能优化只解决了很小一块问题,对于整体的 js 前端优化还有很多事要做。dom 和样式的优化对性能影响也非常重大(首次渲染加载时间,CSSOM)代码质量仍然需要重视,提高代码性能。