JSON.parse
가 더 빠르다.JSON
으로 유효한 객체가 존재한다면, Object Literal보다 JSON.parse
로 객체를 생성하는 것이 더 빠르다. (특히 cold load일 때)
Object Literal은 파싱될 때 여러 토큰의 가능성을 따져야 한다. 반면 JSON.parse
는 오직 문자열 토큰 하나이다.
{
로 시작하는 토큰을 발견했을 때, 이게 꼭 Object Literal이라는 보장이 없다(예를 들어 const x = ({ x }) => x
같은 표현식). 반면, JSON.parse
는 오직 Object
임을 안다.
물론 어느 정도 크기가 클 때에만 성능상 이점을 낼 수 있으며, 가독성을 위해 코드로 JSON.parse
를 사용할 필요는 없고 webpack
이나 babel
을 활용하도록 한다. (webpack
의 경우 JSON
모듈을 파싱할 때 그렇게 되도록 구현되어있고 babel
은 플러그인이 존재한다.)