어김없이 QA가 정신없이 진행중이다.
너무 로직적인부분만 신경을써서그런지 자잘자잘하게 놓친부분들이 너무 많았다.
QA 담당자분꼐 죄송한마음이크다.
오늘 겪었던 이슈들을 정리한다.
replaceAll은 브라우저 하위버전에선 지원을 하지않는다.
정규표현식을 사용하여 replace를 replaceAll처럼 사용하자.
const testStr = 'abacadaeafag'
testStr.replaceAll('a', '-') // "-b-c-d-e-f-g"
testStr.replace(/a/gi, '-') // "-b-c-d-e-f-g"
스크롤이벤트에서 throttle 처리는 까먹지말고 꼭 해주자.
스크롤 페이징처리를 작업해놓았는데, Safari에서 동일한데이터가 여러번 노출되는 문제가 있었다.
Chrome은 문제가 없었지만, Safari에선 스크롤이 바운싱효과가있어 API가 여러번 호출된다.
매번 천단위 콤마를 누군가 개발해놓은 util을 사용하곤했었는데, javascript에 built-in으로 제공해주는 메소드가 있었다.
toLocaleString은 사용자의 문화권에 맞는 표기법으로 변환된 문자열을 return 해준다..
Object, Array, Nubmer 등 대부분의 built-in 클래스에 메소드로 존재한다.
각 클래스마다 동작이 조금씩 다르다.
Number.prototype.toLocaleString 의 경우, 단위구분과 같은 포맷처리를 해준다.
Number(10000).toLocaleString('en'); // "10,000"