21.09.05

Younchong·2021년 9월 6일
0

VC prep-course

목록 보기
7/9

글쓰는 날은 21.09.06 어제 장례식장에 가게 돼서 하루 다음날 글을 쓰게 됐다.
장례식장에 갔다와서 마음이 무겁고 여러가지 생각이 든다.

Week 7 이번주는 클로져와 재귀

이번주에 한 일

과제에 모든 집중…
과제가 어려웠고, 하지만 너무 재미있었다.
하루종일 생각하게 했고, 생각했고, 완벽하진 않지만 해결했다.

이번주 과제는 완벽히 나의 힘으로 스스로 했고, 나 자신에게 떳떳해서
더 좋고, 성취감이 크다.
언제나 변치않는 과제 실행중 절대 원칙으로 세워야겠다.

취침시간을 바꿨다.
2am - 9am
더 효율적인 생활패턴!

이번주 49시간 완료!

Closure

가볍게 외부영역에서 내부함수에서 외부함수의 변수에 접근할 수 있다.
정도로 이해하고 있었는데, 이해도 중요하지만, 과제를 하면서 실제 사용을 하면서 어떻게 사용되는지 장점이 무엇인지를 더 공부하게 됐다.

Recursion

재귀함수.
과제에서는 while로 구현했던 부분을, 공부하고 연습겸 재귀함수로 다시 구현했다.
성능에 차이는 재귀함수가 사용시 memory를 더 많이 사용할 경우가 있다.
하지만 더 다양한 경우에서 사용될 수 있다.
While에 비해서!

코드리뷰

  1. for…in문
    for …in 문에서 방어코드(적절한 용어는 아닌것 같지만)가 필요하기에 지양하는 것이 좋다.
    for …in 문을 사용하면 Object에 있는 열기 가능한 모든 속성을 나열하기 때문에
    hasOwnProperty를 사용해서 프로토타입체인하지않고, 내가 순회하려고 하는 object의 key만 순회하도록 할 수 있다.
    하지만 이 방법마저도 추천하는 방법은 아닌 것 같다.

예시

const obj = {
  a : "a",
  b : "b"
}

Object.prototype.c = "c";

for (key in obj) {
  console.log(obj[key]);
}

결과값은 a,b 뿐만 아닌 c까지 나오게 된다.
프로토타입 체인을 통해 검색한다면
왜 Object의 다른 프로토타입은 검색되지 않을까?
다른 프로토타입은 enumerable 하지 않기 때문이다!

  1. return 전에 공백한 줄로 가독성 높히기.
    먼저 구현되어 있던 코드에서는 붙혀서 써서 따라서 적었는데.
    그때 그때 다르지만 일반적으로는 가독성을 위해 띄어쓰기하고,
    앞에 내용과 return 값이 별개의 내용일 때는 명확히 return값임을 명시하기 위해서 띄어쓴다.
    하지만 전체적으로는 경험치가 쌓임에 따라 판단하기 용이하다.
  1. memoized함수 여러공간 만들기.
    과제내에서의 test만 통과하기 위한 함수를 만들었는데, 여러개의 함수가 주어질 경우, 여러 공간을, 여러 arguments를 받을 수 있는 함수로 만들자.

오는 주

어제의 피로로 약간의 무기력함이 있고, 어제 못해서 밀린일도 하나하나 다 처리하는 월요일이었다.

새로운 생활패턴으로 더 효율이 높고, 더 많은 집중시간을 갖자.
50시간 이번주는 넘자!

공부할 요소들 바로바로 읽어보자!

마지막 과제 후회없이, 아쉬움없이 구현하자!

0개의 댓글