22/10/17_TIL

강해경·2022년 10월 17일

Today I Learned

목록 보기
17/36

👩‍💻 오늘 한 일

• 클론코딩 (Aesop, header부분 js 리팩토링?과 scroll 감지 효과 구현)
• 백준 1문제 풀기
• js 강의 듣기(this, prototype)

💭 내 생각/느낀 점

  const opens = document.querySelectorAll('.open');
  [].forEach.call(opens, function (open) {
    open.classList.remove('open');
  });

내가 이솝홈페이지 클론코딩하면서 헤더의 버튼을 클릭하면 해당하는 화면빼고 나머지는 다 닫아주기 위해 open 클래스를 가지 요소에서 다 open을 제거하기 위해 넣었던 코드였다. 구글링으로 찾아서 넣었던거라 예시랑 맞춰서 인자를 넣었는데 오늘 생성자함수 수업과 this바인딩을 들으면서 저 코드가 생각나서 다시 찾아봤다.

querySelectorAll 로 찾은 요소들이 유사배열 Nodelist로 반환되어 이 노드리스트 내 아이템들에 forEach 메소드를 쓰기위해 call로 불러와 하나씩 open클래스를 제거해줬다. 근데 검색을 해보니 Nodelist에도 forEach메소드를 직접 사용할 수 있었다. 그래서 다시 작성해본 코드.. 고친게 훨씬 가독성이 좋은거 같다.

  const opens = document.querySelectorAll('.open');
  opens.forEach((open) => open.classList.remove('open'));

과제 제출하고 나서도 내가 짠 코드를 꼭 리팩토링하는 시간을 가져야겠다.

📆 내일 할 일

• 클론코딩 (Aesop, footer js), 코드 및 파일 정리
• js수업 듣기
• 백준 2문제 풀기

0개의 댓글