Java Script - 함수 : 유효범위
2024. 3. 23. 00:13ㆍCoding/Java Script
유효범위 - 번수의 수명을 의미한다
자바스크립트는 함수에 대한 유효범위만을 제공한다. 많은 언어들이 블록(대체로 {,})에 대한 유효범위를 제공하는 것과 다른 점이다. 아래 예제의 결과는 coding everybody이다.
for(var i = 0; i < 1; i++){
var name = 'coding everybody';
}
alert(name);
자바에서는 아래의 코드는 허용되지 않는다. name은 지역변수로 for 문 안에서 선언 되었는데 이를 for문 밖에서 호출하고 있기 때문이다.
for(int i = 0; i < 10; i++){
String name = "egoing";
}
System.out.println(name);
자바스크립트의 지역변수는 함수에서만 유효하다.
자바스크립트는 함수가 선언된 시점에서의 유효범위를 갖는다. 이러한 유효범위의 방식을 정적 유효범위(static scoping), 혹은 렉시컬(lexical scoping)이라고 한다.
var i = 5; //전역변수
function a(){
var i = 10; //a함수의 지역변수
b();
}
function b(){
document.write(i); //i가 가리키는 변수는 전역변수를 가리킨다.
}
a();
실행 결과는 5이다.
사용될 때가 아닌 정의될 때 전역변수가 사용되게 된다.
+정적유효범위와 동적유효범위의 차이를 잘 알자
'Coding > Java Script' 카테고리의 다른 글
Java Script - 함수 : 콜백함수 (2) | 2024.03.30 |
---|---|
Java Script - 클로저 (2) | 2024.03.24 |
JavaScript - 함수 : 값으로서 함수 (0) | 2024.03.24 |
Uncaught SyntaxError: Unexpected string (0) | 2024.03.22 |