
클로저(closure)란?JavaScript의 매우 강력한 특성으로, 독립적인 변수를 참조하는 함수클로저의 필요성 JS는 함수 내부에서 함수 외부에 있는 변수에 접근할 수 있다. 만약에 함수 내부에서 전역 외부 변수를 참조했다면, 전역 변수는 언제든지 누구나 접근할 수 있고 변경할 수 있기 때문에, 많은 부작용을 유발해 오류의 원인이 될 수 있다.따라서 함수 내에서 상태를 유지하는 변수를 사용할 필요성이 있다.다음의 계산기 함수처럼 말이다. function makeCounter() { let count = 0; return function() { return count++; };}let counter = makeCounter();alert( counter() ); // 0alert( count..

호이스팅이란?JavaScript 호이스팅은 인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 임포트(import)의 선언문을 해당 범위의 맨 위로 끌어올리는(hoisted) 현상ex )function sayHi() { phrase = "Hello"; console.log(phrase); var phrase;}sayHi(); //Hellovar phrase가 위로 이동한 것(아래 코드)처럼 출력된다.function sayHi() { var phrase; phrase = "Hello"; console.log(phrase);}sayHi(); //Hello왜 호이스팅은 일어나는가- 역사적 이유브랜든 아이크(JS의 창시자)는 var 호이스팅이 의도치 않은 것이라는 점을 명확히 하는 후속 트윗..