eotkd4791 / TIL-archive

TIL을 모아두는 용도로 사용하는 Repo
0 stars 0 forks source link

String.prototype.replaceAll에 대하여. #28

Open eotkd4791 opened 3 years ago

eotkd4791 commented 3 years ago

String.prototype.replaceAll은 최근(ES12/ES2021)에 추가된 문자열 메소드이다. 따라서 자바스크립트 런타임이 최신 버전이 아니라면 replaceAll 메소드를 인식하지 못할 수 있다.

아래는 replaceAll을 사용한 함수를 호출한 결과이다. 내가 사용하는 nodejs 버전은 v14.17.0인데, 해당 버전에서 에러가 난다.

image that happened type error, replaceAll is not a function

따라서 최신 버전의 자바스크립트 런타임을 설치하거나, 아래 코드처럼 replaceAll 메소드와 같은 동작을 하는 코드를 구현하면 된다.

const str = 'Hello,\nDaesang\n:)';

const resultRemovedLineBreaksWithReplaceAll = str.replaceAll('\n', ' ');
const resultRemovedLineBreaksWithoutReplaceAll = str.split('\n').join(' ');

// => "Hello, Daesang :)"

참고자료 How to Replace All Occurrences of a Word in a JavaScript String? - Daniyal Hamid How to Fix "replaceAll is not a function" JavaScript Error? - Daniyal Hamid