자바스크립트는 함수에 대한 유효범위만을 제공
많은 언어들이 블록(대체로 {,})에 대한 유효범위를 제공하는 것과 다른 점
for(var i =0; i <1; i++){var name ='coding everybody'//name = 지역변수}alert(name); //for문 밖에서 호출되고 있음//coding everybody//자바에서는 아래의 코드는 허용되지 않for(int i =0; i <10; i++){ String name ="egoing";}System.out.println(name);
5. 정적 유효범위(static scoping)
자바스크립트는 함수가 선언된 시점에서의 유효범위를 갖게 됨
이러한 유효범위 방식을
정적 유효범위(static scoping), 렉시컬(lexical scoping)이라 함
즉, 함수를 호출해서 변수값을 가져오는 시점이 아닌 함수가 정의되는 시점
이후 클로저(Closure)와 연결됨
var i =5;functiona(){var i =10;b();}functionb(){document.write(i);}a(); //5