티스토리 뷰

JavaScript & TypeScript

JS RegExp perfomance

kingsubin 2022. 9. 24. 20:58

JS RegExp perfomance

JavaScript 에서 /\s+/g 와 같이 리터럴 신택스로 작성한 RegExp이 존재할 때 const reg1 = /\s+/g 와 같이 다른 변수에 저장해두고 사용할 지, 아니면 바로 리터럴을 사용할 지에 대한 조사

 

내용은 아래 링크해둔 stackoverflow 의 첫 번째 답변을 보면 자세히 설명해주고 있다.

 

ES5 이전에는 리터럴 신택스로 작성된 정규 표현식의 경우 자체적으로 한 번 컴파일하고 캐싱하고 사용하여 리터럴 신택스를 그대로 사용하여도 문제가 없었으나 ES5 부터 리터럴도 새 객체를 생성하는 것으로 변경되었고 그에 따라 JS 엔진들도 수정되었으므로 의존할 수 없다.

 

결론:

여러 번 사용되는 정규표현식의 경우 리터럴 신택스로 작성하여 따로 저장 후 사용하는 것이 효율적이다.