(자바스크립트) - 스코프(Scope)
Scope란 ?
-
영어로 범위, 영역이라는 뜻이다.
-
자바스크립트에서 Scope는 변수의 수명을 의미한다.
-
전역 스코프(Global Scope), 지역 스코프(Local Scope)로 구분된다.
전역 스코프
-
함수의 외부에서의 범위.
-
이러한 전역 변수는 프로그램의 어느 영역에서나 접근할 수 있으며, 웹 페이지가 닫혀야만 메모리에서 사라진다.
var globScope = 'global'; function fscope(){ alert(globScope); } fscope();
- 결과 : 'global'
- 함수 밖에서 변수를 선언하면 그 변수는 전역변수가 된다.
- 전역변수는 애플리케이션 전역에서 접근이 가능한 변수이다.
지역 스코프
- 함수 내부에서의 범위.
- 함수 내부에서만 유효하며, 함수가 종료되면 메모리에서 사라진다.
function fscope(){ var num = 10; alert(num); } fscope();
-
결과 : 10
-
자바스크립트에서 지역 변수를 선언할 때에는 반드시 var 키워드를 사용하여 선언해야 한다.
-
함수 내부에서 var 키워드를 사용하지 않고 변수를 선언하면, 해당 변수는 지역 변수가 아닌 전역 변수로 선언된다.
var vscope = 'global'; function fscope(){ vscope = 'local'; alert('함수 내부'+vscope); }fscope(); alert('함수 외부'+vscope);
-
결과 : '함수 내부 local'이 먼저 실행됨.
-
전역변수와 지역변수가 같은 이름으로 정의되었을 때, 지역변수가 호출된다.
var scope = 'global'; //전역변수 function fscope(){ var scope = 'local'; //지역변수 alert(scope); }fscope();
- 결과 : 'local'
렉시컬 스코프(Lexical Scope)
- 자바스크립트는 함수가 선언된 시점에서의 유효범위를 갖는다.
- 이러한 유효범위의 방식을 정적 유효범위(static scoping) 혹은 (lexical scoping) 이라고 한다.
- 즉, 함수를 어디서 선언했는지에 따라 상위 스코프를 결정한다.
var i = 5; function a(){ var i=10; b(); } function b(){ alert(i); }a();
- 함수 b 에 지역변수가 존재하지 않아서 전역 변수를 찾는다.
- 함수 b가 선언된 시점에서 i의 전역변수는 var i = 5 이다.
- 따라서 결과는 5 이다.
출처
http://tcpschool.com/javascript/js_function_variableScope
https://www.inflearn.com/course/%EC%A7%80%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%96%B8%EC%96%B4-%EA%B8%B0%EB%B3%B8/lecture/2524?tab=curriculum
개인공부
Author And Source
이 문제에 관하여((자바스크립트) - 스코프(Scope)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@owozz/JavaScript자바스크립트-Scope유효범위저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)