⚡ 클로저(closure) 클로저(closure)라는 개념은 내부 함수가 외부함수의 스코프(범위)에 접근할 수 있는 것을 말한다. 📝 예제 function outer() { var a = 'A'; var b = 'B'; function inner() { var a = 'AA'; console.log(b); } return inner; } var outerFunc = outer(); outerFunc(); // B 해당 코드에서 inner() 함수의 스코프가 outer()함수의 스코프를 참조하고 있고 outer()의 실행이 끝나고 소멸된 이후에도 inner() 함수가 outer() 함수의 스코프에 접근할 수 있는 것을 클로저라고 한다
자바스크립트는 동적언어이다. 타입은 프로그램이 처리되는 과정에서자동으로 파악한다. ⚡ let, const 사용하는 이유 ES6 이후로 var 대신 되도록 const, let을 사용해야 한다. 그 이유는 var의 변수 호이스팅과 function-level-scope로 생기는 문제 때문이다. 1. 호이스팅(Hoisting) 이란? console.log(puppy); var puppy ="cute"; console.log(puppy) //결과 undefined cute puppy변수를 아직 선언하지 않은 상태에서 호출했는데 오류가 나지 않고 undefined라는 값을 반환한다. 이런 현상을 "호이스팅"이라고 한다. 변수 호이스팅(Hoisting)은 변수의 선언과 초기화가 동시에 이루어져, 아직 값이 없음에도 ..