Java Script - 함수 : 유효범위

2024. 3. 23. 00:13Coding/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이다.

 

사용될 때가 아닌 정의될 때 전역변수가 사용되게 된다.

 

+정적유효범위와 동적유효범위의 차이를 잘 알자

 

https://opentutorials.org/course/743/6495

'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