scope

    JavaScript Scope 와 Closure

    Scope란 변수에 접근할 수 있는 범위를 나타냅니다. 블록 레벨 스코프(Block-Level Scope)를 따르는 C계열 언어들과 다르게 자바스크립트는 함수 레벨 스코프(Functional-Level Scope)를 따릅니다. 다음을 보면 function num() { var x = 10 } console.log(x) // ReferenceError: x is not defined x는 num() 이라는 함수 안에 선언이 되었기에 ReferenceError가 납니다. 즉, 외부에서는 접근하지 못합니다. 반면 다음을 보면 if (true) { var x = 10 } console.log(x) // 10 x는 if문 안에 선언이 되었습니다. C계열의 언어라면 블록안에 선언되어 접근하지 못했겠지만 자바스크립트..