변수의 유효범위 scope

2021. 11. 30. 12:55Study/JavaScript

스코프란?

*함수(function) 사용 시 변수/배열의 유효범위

*스코프(scope, 유효범위)는 자바스크립트를 포함한 모든 프로그래밍 언어의 기본적인 개념. 확실한 이해가 필요하다.

*변수는 크게 '지역변수', '전역변수' 두 종류로 나눌 수 있다.

 

 


 

지역변수

*함수 내에서 만들어진다.

*각각의 '함수 내에서 만들어진' 변수는 그 해당 함수에서만 사용할 수 있다.

*보안에 취약하다

// 지역변수
function callFunc1() {
	var cnt1=100;  // 지역변수
	var cnt2=200;  // 지역변수
}
function callFunc2() {
	var result=0;  // 지역변수
	result = cnt1 + cnt2;  // cnt1, cnt2는 선언되어 있지 않아 오류가 난다.
	alert('두정수의 합:' + result);
}
callFunc1();
callFunc2();

 

 

전역변수

*함수 외부에서 선언한다.

*함수 외부에서 선언하고, 모든 함수가 함께 공유해서 사용할 수 있는 변수

// 전역변수
var cnt1=0;  // 전역변수
var cnt2=0;  // 전역변수

function callFunc1() {
	cnt1=prompt('정수를 입력하세요','');
	cnt2=prompt('정수를 입력하세요','');
}
function callFunc2() {
	var result=0;  // 지역변수
	result = cnt1 + cnt2;
	alert('두정수의 합:' + result);
}
callFunc1();
callFunc2();

 

 

예제

var cnt1 = 200; // 전역변수
var cnt2 = 200; // 전역변수

function callFunc1(){
	var cnt1 = 100; // 지역변수
	var cnt2 = 100; // 지역변수
}
function callFunc2(){
	var result=0;
	result=cnt1+cnt2;
	console.log(result);  // 전역변수를 사용하여 값은 400이다
}
function callFunc3(){
	var result=0;     // 지역변수
	var cnt1=10;     // 지역변수
	var cnt2=10;     // 지역변수

	result=cnt1+cnt2;
	console.log(result);    // 지역변수를 사용하여 값은 20이다.
}
callFunc1();
callFunc2();
callFunc3();

 

 

 

 

 

 

참고 :)

https://poiemaweb.com/js-scope

 

Scope | PoiemaWeb

스코프는 참조 대상 식별자(identifier, 변수, 함수의 이름과 같이 어떤 대상을 다른 대상과 식별할 수 있는 유일한 이름)를 찾아내기 위한 규칙으로 자바스크립트는 이 규칙대로 식별자를 찾는다.

poiemaweb.com

 

 

https://www.nextree.co.kr/p7363/

 

JavaScript : Scope 이해

JavaScript는 단순한 언어로 여겨져 왔습니다. 그래서 여러 개발자분들이 JavaScript를 배우기도 쉽고 간단히 쓸 수 있다는 편견을 가지고있습니다. 하지만, 최근 JavaScript의 관심이 늘어나면서 JavaScrip

www.nextree.co.kr

 

 

'Study > JavaScript' 카테고리의 다른 글

Object 내장객체  (0) 2021.12.01
Object 사용자 정의 객체  (0) 2021.12.01
사용자 정의 함수 Function  (0) 2021.11.30
break; continue;  (0) 2021.11.30
JavaScript - 7. 반복문 while  (0) 2021.11.29