자바스크립트 3

[JavaScript] 실용적으로 공부하는 클로저(Closure)

클로저가 잘 이해가 되지 않는 와중에 (특히나 이해가 안되기보단 와닿지 않았다) 어떤 의의를 가진 것인지 잘 나타내는 영상이 있어서 참고하였다. 영상 let cnt = 0; function cntPlus() { cnt = cnt + 1; } console.log(cnt); //0출력 cntPlus(); console.log(cnt); //1출력 cnt를 선언하고 cntPlus라는 함수를 작성했다. 그런데 코드를 이렇게 작성하고 작업하다보면 의도치 않게 다음과 같은 상황이 발생할 수 있다. let cnt = 0; function cntPlus() { cnt = cnt + 1; } console.log(cnt); cntPlus(); console.log(cnt); //수많은 코드들로 작업함 cnt = 100..

JS 2023.09.21

[JavaScript] 호이스팅, 스코프

스코프를 알기 위해서는 호이스팅을 알아야한다. 또한 호이스팅을 알기 전 실행컨텍스트의 개념을 알고, 실행컨텍스트 객체 안에 담긴 environmentRecord를 알아야한다. 실행컨텍스트 [JavaScript] 실행 컨텍스트 코어 자바스크립트 2강 - 실행컨텍스트 실행 컨텍스트 실행할 코드에 제공할 환경 정보들을 모아놓은 객체 스코프와 클로저 라는 개념을 이해하기 전에 살펴보자. 우리가 다음과 같은 JS파일을 junly21.tistory.com 호이스팅 environmentRecord에는 현재 컨텍스트에 관한 정보들이 저장된다. 이 때 컨텍스트 내부에 함수 선언문이 있다면 '함수 그 자체'를 수집하고, var로 선언된 변수도 수집하고 한다. 이렇게 변수 정보 수집을 마쳐도 실행 컨텍스트가 관여할 코드들은..

JS 2023.09.10

[JavaScript] 실행 컨텍스트

코어 자바스크립트 2강 - 실행컨텍스트 실행 컨텍스트 실행 컨텍스트란, 실행할 코드에 제공할 환경 정보들을 모아놓은 객체를 의미한다. 그 유명한 스코프와 클로저 라는 개념을 이해하기 전에 알아야 하는 개념. 우리가 다음과 같은 JS파일을 실행한다고 가정해보자. //--------------------(1) var a = 1; function outer() { function inner() { console.log(a); // undefined var a = 3; } inner(); //--------------------(2) console.log(a); // 1출력 } outer(); //--------------------(3) console.log(a); //1 파일이 실행되자마자 (1)순간 콜 스..

JS 2023.09.10