

페어분과 찾아봤을 때 가장 햇갈린 부분이었다. 브라우저 콘솔에서는 replaceAll()이 잘 먹히는데, 샌드박스나 코플릿, visualize code ES6에서는 기대한대로 작동하지 않았다. 가장 먼저 든 의심은 브라우저 호환성이었는데, 검색하던 중, replaceAll이 최신 버전인 ES2021(ES12)에 새로 추가가 되었다는 걸 알게 되었다. tc39 github 링크
표의 가장 우측에 있는 칼럼이 Expected Publication Year이다.
번외로.. 2020에 진행한 미팅 노트를 보면 replaceAll이 4단계까지 왔음을 알 수 있고 이의있습니까?! 없습니다!! 땅땅땅 합의! 하는 과정을 볼 수 있어서 매우 흥미로웠다. 발의자인 MB는 구글 소속이시구나.. 우연한 계기로 자바스크립트가 이렇게 진화?하는구나 하고 알 수 있었다.
결과적으로 개선된 코드에서 replace()를 사용하지는 않았지만, replaceAll()이 안되는 궁금증도 풀고, replace()와 단짝인 정규 표현식의 원리도 궁금해졌다.
::TODO::
폴리필, 정규 표현식
let str = word.replace(/\s+/g, '')
let str = word.toString().replace(/\s+/g, '')
테스트를 하던 중 아마 word가 문자열이 아닌 다른 타입이 들어갔었던 것 같다. replace()가 is not a function typeError가 떴을 때, word.toString().replace()으로 바꿔주고 작동하니 잘 되었다.
replace() | MDN
replaceAll() | MDN
solve - replace is not function
proposals | tc39