[TIL] 프론트엔드 Day 1
공부한 내용
- 변수 (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, ...)
느낀점
전공 수업을 들으며 알아온 내용이 다소 많아서 약간 안심하고 있었다. 하지만 함수를 객체로 반환하고, 그에 따라 생겨나는 클로저같이 명확하게 이해하기 힘든 내용이 나오고 약간 헤맸다. 내 나름대로 확실히 정리하고 필요한 부분은 질문을 할 계획이다.
Author And Source
이 문제에 관하여([TIL] 프론트엔드 Day 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jo_cw/TIL-FE-Day-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)