[자바스크립트] - 전역변수와 지역변수

Sean yang~~·2022년 6월 5일
0

자바스크립트

목록 보기
9/25
post-thumbnail

유효범위

  • 유효범위 (scope)은 변수의 수명을 의미한다
  • 지역변수(locol variable), 전역변수(global variable)
  • 지역변수는 함수 중괄호 안에서먼 접근가능한 변수
  • 함수밖에서 변수를 선언하면 그 변수는 전역변수가 된다.
var vscope = 'global';  |  함수밖    === 전역변수
function fscope(){      |
    alert(vscope);      |  함수안
}                       |      
fscope();               |  함수밖
  • 즉 함수 안에서 변수 vscope을 조회(4행) 했을 때 함수 내에서 선언한 지역변수 vscope(3행)의 값인 local이 사용되었다. 하지만 함수 밖에서 vscope를 호출(7행) 했을 때는 전역변수 vscope(1행)의 값인 global이 사용된 것이다. 즉 지역변수의 유효범위는 함수 안이고, 전역변수의 유효범위는 에플리케이션 전역인데, 같은 이름의 지역변수와 전역변수가 동시에 정의되어 있다면 지역변수가 우선한다는 것을 알 수 있다. 아래 예제를 보자. 결과는 모두 local이다.
var vscope = 'global';   // 함수밖
function fscope(){                |
    var vscope = 'local';         |
    alert('함수안 '+vscope);      |      함수안
}                                 |
fscope(); ===> local
alert('함수밖 '+vscope); ===> global
  • var를 사용하지 않는 지역변수는 전역변수가 된다.
  • 전역변수(함수밖에서의 변수)는 사용하지 않는 것이좋다. 여러가지 이유로 그 값이 변경될 수 있기 때문이다.
  • 변수를 선언할 때는 꼭 var를 붙이는 것을 습관해 해야된다. 전역변수를 사용해야 하는 경우라면 그곳을 사용하는 이유를 명확히 알고 있을때 사용하도록하자.

전역변수의 사용

  • 익명함수 - 이름이 없는 함수

유효범위의 대상 (함수)

  • 자바스크립트이 지역변수는 함수에서만 유효하다.
  • 함수의 중괄호 안에서만 선언된 변수만이 그 함수안에서의 지역변수가 되는것

정적 유효범위

  • js는 함수가 선언된 시점에서 유효범의를 갖는다. 이러한 유혀범위릐 방힉을 정적 유효범위(static scoping), 혹은 렉시컬(lexical scoping)이라고 한다.
  • 사용될때(동적)가 아니고 정의될때(정적)의 전역변수가 사용되게 된다.
profile
나는 프론트엔드 개발자다!

0개의 댓글