Today, I Learned

  • 재귀함수를 이용해서 getElementByClassName() 메서드를 구현해봤다.
    • element.classList.contains(classname)을 이용해서 해당 요소에 찾고자하는 클래스 명이 있는지를 탐색해볼 수 있었다.
    • hasChildNodes()를 이용해서 해당 요소에 자식 노드가 있는지를 먼저 체크했다
    • 체크해서 true가 나오면, 그 요소에 대해서
      for문 : for (let i=0; i<element.children.length;i++) 를 써서 그 안에 element.children[i]로 인덱싱을 하여 여태까지 했던 과정을 반복하기 위해 재귀 함수를 호출했다(자기 자신을 호출했다) 이런식으로 부모 노드에서 자식 노드까지 계속해서 입력한 클래스명과 일치하는 요소를 찾도록 했다 :D
    • childNodes 와 children의 차이 : childNodes는 비요소 노드, 예를 들어, 주석 노드 등을 전부다 가져오는 반면, children은 비요소 노드를 제외한 자식노드를 전부다 가져온다. 이 부분 때문에 헷갈렸던 파트가 있어서 기억하고 가자!
  • html에서 부등호 표현법: &.l.t(.을 없애고), &.g.t(.을 없애고)
  • 자바스크립트 예외처리 => 사실상 자바와 거의 똑같음
    try {
    throw new SyntaxError('cannot parse property of unformed data', 'parseJSON.js', 20); }
    //실제 에러를 일으키는 파트로 이렇게 throw new Error를 해주거나, 에러가 발생할만한 코드를 써놓고, 에러가 발생하면 뒤에 catch문으로 잡아주는 것
    catch(//에러를 받는 매개변수 파트, 보통 e로 해놓음) {
    //에러가 발생했을 때의 처리를 써주는 곳 }

    이런식으로 쓴다는 것 기억!
  • 어제 풀었던 문제를 하나의 함수로 재귀호출해서 푸는데에 성공했다. 왜 어제는 이 생각을 못했을까라고 생각하면서도, 아직 내 실력이 한번에 그곳에 닿기는 어렵다는 생각을 하게 됐다. 하지만, 어쨌든 닿긴 닿았으니, 다음에는 더 빨리 그러한 생각에 닿을 수 있을 거라고 생각한다. 디테일한 예외가 있더라도, 머리 아프다고 포기하지말고, 잡아주고, 처리해주는 것이 프로그래머의 역할!

Planning to Study

  • 앞으로 약 9일 정도(?) 코드스테이츠 immersive로 가기 전에 공백기가 있다. 이 기간동안 욕심부리기보다는 이미 가진 것을 굳건히 하고, 약간의 살을 붙이는 작업을 하자. 계획은 오늘 내로 마무리해보자.
profile
완벽함 보다는 최선의 결과를 위해 끊임없이 노력하는 개발자

0개의 댓글