category개발노트JavaScript

  1. Codility Lesson 1 — BinaryGap
    📆📂개발노트JavaScript

    Task 주어진 정수의 2진 표현에서 가장 긴 zero sequence 구하기. How I did solve binary 변환 주어진 정수를 2로 나누어 나눈 나머지를 뒤에서부터 채움 몫을 다시 2로 나눈 나머지를 그 다음에 채움 몫이 0이 될 때까지 반복 => 재귀 함수 이용 zero gap 구하기 binary를 문자열로 받아서 trailing zero 제거 : 정규식 이용 1로 split하여 zero gap 배열을 취하고 이를 오름차순 정렬 배열의 마지막 요소의 길이를 반환 배열의 마지막 요소가 없을 경우 0 반환

  2. Mac Safari에서 popstate 이벤트 문제
    📆📂개발노트JavaScript

    최근 작업 중인 사이트에 History객체의 .pushState() 메서드와 .replaceState() 메서드를 이용해서 ajax에 대한 URL history 처리를 해 두었는데, QA를 진행 하던 중 Mac Safari에서 window.onpopstate 이슈가 발생했다. 원인을 찾아가 보니 결국 popupstate 이벤트가 발생되는 시점의 문제였는데, 다른 브라우저들은 문제가 없는 반면 Mac Safari에서는 이 이벤트가 페이지 로드와 동시에 발생되는 문제가 발생한 것… 해결 임시 방편일지 이렇게 하는 것이 최선책일지는

  3. 핸드폰 번호 하이픈(-) 자동입력
    📆📂개발노트JavaScript

    최근 UI 작업 중에 핸드폰 번호 입력 시 자동으로 하이픈이 입력되도록 처리해달라는 요청이 있어 keyup event에 바인딩하여 쓸 용도로 자동 하이픈 처리 함수 하나를 만들어 봤다. 원리는 매우 단순하다. 일단 input box에 입력을 한다고 했을 때 value값을 인수로 넘겨주고 넘겨 받은 값으로 부터, 숫자 이외의 것들은 모두 제거하고 현재 입력된 값의 길이에 따라 {3}-{3}-{3} 형태 혹은 {3}-{4}-{3} 형태가 되도록 잘라내어 문자열을 재구성 하는 방식이다. 바로 적용을 시켜야 하는 부분이라서 최적화 부분은