자바스크립트의 유효범위는 기존 블록 유효범위와 다르다
유효 범위가 블록 안에 존재 하지 않고 함수 안에 존재 한다.
무슨말인지 잘 이해가 안갈수도 있는데 예를 보면서 설명해 보겠다.
var test='111' //전역변수 test
//if블록 안
if(true){
var test='222'
}
console.log(test) // 222가 출력
보통 다른 언어를 생각한다면 if문안이니까 지역변수로 222가 저장되고
전역변수는 변화가 없다고 생각하지만 test변수값에는 222가 설정되었다.
다음 코드를 보자
var test='111'; //전역변수test
function test(){
var test='222';
}
test();
console.log(test); //111이 출력
위와 같이 함수안에 설정된 변수는 지역변수로 설정되고 출력값은 처음 설정한 111로 동일하다.
정리해 보면 자바스크립트는 유효범위가 블록(if, while, for ....)안에 존재하지 않고 함수안에 존재한다.
'javascript' 카테고리의 다른 글
[javascript] 배열을 스택처럼 다루기 (0) | 2013.06.26 |
---|---|
[javascript] setTimeout, setInterval, clearInterval (0) | 2013.06.14 |
[javascript] overloading (0) | 2013.06.12 |
[javascript] 문자열 자르기 (split, substring, substr) (18) | 2013.06.11 |
[javascript] 메모리 관리 (0) | 2013.06.03 |