原因:
- 对于js引擎来说,JSON能够非常容易地被解析
- 对于js解析器来说,JSON.parse()不就是相当于只带有一个参数的call语句。
解析JSON时遇到大括号,只有两种情况,一种就是对象,另外一种就是无效的JSON。
但是,在js中,看到大括号就有非常多的情况。
const x = 12;
let y = ({x}); //创建了一个对象字面量
let y = ({x}) = {x:32}; //此处是解构赋值
const x = 100;
let y = ({x}) => x;
因此,解析JavaScript是非常复杂的,而解析JSON就没有这些问题。
所以,对于超级大的对象,用JSON.parse()
比直接使用JS对象字面量更快。
最后,你可能想知道到底快了多少:以下是在没有缓存的情况下,加载一个8MB的对象速度对比。
可以在这里查看实验结果:点击此处。