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
Web3.0에 관심이 많은 FE 개발자입니다. VPA와 캔들 차트 분석을 기반으로 정량적 트레이딩 시스템을 직접 개발하여 암호화폐를 트레이딩하고 있습니다.

0개의 댓글