[TIL] 프론트엔드 Day 1

KIKO·2022년 3월 21일
1

TIL

목록 보기
1/23
post-thumbnail

공부한 내용

  • 변수 (var, let), 상수 (const)
  • 자료형 (Number, String, Boolean, Object, Array, Function)
  • 메모리: garbage collection
  • Control flow (if, switch, while, for, do-while)
  • Array
    - push(), pop()
    - length
    - join, reverse
    - shift, unshift
    - slice, splice
  • Object
    - Constructor
    - delete
    - keys, values
    - in operator

Closer🔥

    function func1() {
        let val = 0;
        function innerFunc() {
            val = val + 2;
            return val;
        }
        return innerFunc;
    }

    const func = func1();
    console.log("mine : ",func());
    console.log("mine : ",func());

위의 코드에서 함수 func1은 내부에 함수 innerFunc를 반환한다.
일반적으로 func1의 실행이 끝나고 나서 block scope인 변수 val의 할당은 해제된다.
그러나 func1이 반환한 innerFunc에서 변수 val을 참조하므로 클로저에 저장되며 이후 func를 통해서 innerFunc를 실행하면 아래와 같이 정상적으로 실행되며 val에 저장된 값 또한 유지됨을 알 수 있다.

다시 볼 내용

  • 호이스팅
  • Lexical scope
  • Closer
  • 비동기 (Collback queue, Event loop, ...)

느낀점

전공 수업을 들으며 알아온 내용이 다소 많아서 약간 안심하고 있었다. 하지만 함수를 객체로 반환하고, 그에 따라 생겨나는 클로저같이 명확하게 이해하기 힘든 내용이 나오고 약간 헤맸다. 내 나름대로 확실히 정리하고 필요한 부분은 질문을 할 계획이다.

profile
개발자로 발돋움

1개의 댓글

comment-user-thumbnail
2022년 3월 21일

클로저🔥🔥🔥🔥에 대한 설명이 아주 쉽게 읽혀서 좋아요!
덕분에 한번 더 잘 짚고 가요 : )

답글 달기