如何编写优化的 JavaScript
对象属性的顺序:始终以相同的顺序实例化对象属性,以便共享的隐藏类和随后优化的代码可以共享之。
 
动态属性:在实例化之后向对象添加属性将强制执行隐藏的类更改,并降低之前隐藏类所优化的所有方法的执行速度。相反,在其构造函数中分配所有对象的属性。
 
方法:重复执行相同方法的代码将比仅执行一次的多个不同方法(由于内联缓存)的代码运行得更快。
 
数组:避免稀疏数组,其中键值不是自增的数字。并没有存储所有元素的稀疏数组是哈希表。这种数组中的元素访问开销较高。另外,尽量避免预分配大数组。最好是按需增长。最后,不要删除数组中的元素。这会使键值变得稀疏。
 
标记值:V8 使用 32 位表示对象和数值。由于数值是 31 位的,它使用了一位来区分它是一个对象(flag = 1)还是一个称为 SMI(SMall Integer)整数(flag = 0)。那么,如果一个数值大于 31 位,V8会将该数字装箱,把它变成一个双精度数,并创建一个新的对象来存放该数字。尽可能使用 31 位有符号数字,以避免对 JS 对象的高开销的装箱操作。

最新文章

  1. java基础知识(十一)java反射机制(下)
  2. S5PV210的电阻触摸屏&ADC控制器
  3. Mysql sql查询性能侦查
  4. HTML笔记(七)head相关元素<base> & <meta>
  5. 在oracle中创建空间索引
  6. javascript中出现identifier starts immediately after numeric literal错误原因以及解决方法
  7. Demo学习: CustomException
  8. mysql 5.7.16多源复制
  9. Linux 删除空行
  10. readfile() file_get_content f
  11. [20180928]ora-01426(补充).txt
  12. mysql基础SQL练习
  13. [autocomplete]如果条目末尾有空格,MustMatch不起作用
  14. Android中服务的生命周期与两种方式的区别
  15. 【洛谷】【计数原理+Floyed】P1037 产生数
  16. js定时器整理(执行一次、重复执行)
  17. 转:C# 使用资源文件 Resource.resx 的方法
  18. python记录_day04(补充)
  19. 如何在win10(64位系统)上安装apache服务器
  20. 启明星Exchange/outlook预定会议室终端显示解决方案

热门文章

  1. 【转载】计算机程序的思维逻辑 (82) - 理解ThreadLocal
  2. vcs/verdi filist
  3. ARTS Week 8
  4. SpringBoot之ApplicationRunner接口和@Order注解
  5. HTML5与HTML4的区别-----文档结构
  6. 不同宿主的iterator不能进行比较
  7. jQuery 基础 (笔记源于runoob)
  8. AJAX传输图片文件
  9. drf序列化高级、自定义只读只写、序列化覆盖字段、二次封装Response、数据库查询优化(断关联)、十大接口、视图家族
  10. Jenkins自动化构建vue项目然后发布到远程Linux服务器