1. 熟悉的JSON.stringify()
创新互联主营翁源网站建设的网络公司,主营网站建设方案,app软件开发,翁源h5小程序设计搭建,翁源网站营销推广欢迎翁源等地区企业咨询在浏览器端或服务端,JSON.stringify()都是我们很常用的方法:
在一些性能敏感的场合下(例如服务端处理大量并发),或面对大量 stringify 的操作时,我们会希望它的性能更好,速度更快。这也催生了一些优化的 stringify 方案/库,下图是它们与原生方法的性能对比:
绿色部分时原生JSON.stringify(),可见性能相较这些库都要低很多。那么,在大幅的性能提升背后的技术原理是什么呢?
2. 比 stringify 更快的 stringify
由于 JavaScript 是动态性很强的语言,所以对于一个 Object 类型的变量,其包含的键名、键值、键值类型最终只能在运行时确定。因此,执行JSON.stringify()时会有很多工作要做。在一无所知的情况下,我们想要大幅优化显然无能为力。
那么如果我们知道这个 Object 中的键名、键值信息呢 —— 也就是知道它的结构信息,这会有帮助么?
看个例子:
下面这个 Object,
const obj = { name: 'alienzhou', status: 6, working: true };