본문 바로가기
개발/Javascript

JS : 변수의 유효범위 Scope, 지역변수와 전역변수

by 안뇽! 2021. 8. 4.
반응형

Scope : 변수 접근 규칙에 따른 유효범위

  1. 안쪽 스코프에서 선언한 변수는 바깥쪽에서 사용불가능
  2. 스코프는 중첩이 가능하다
  3. 가장 바깥쪽의 스코프는 전역 스코프이다. 전역이 아닌 다른 스코프는 모두 지역 스코프임.
  4. 지역변수는 항상 전역변수보다 높은 우선순위를 가진다.

1. 안쪽 스코프에서 선언한 변수는 바깥쪽에서 사용불가능

let name = 'june'
if(name){
let talk = `hello ${name}!`;
console.log(talk) // hello june!
}

console.log(talk); //Error

변수 'talk' 는 2~5 조건문 안에서만 유효하다.

2.  스코프는 중첩이 가능하다.

코드스테이츠 수업자료

 

3.  가장 바깥은 전역 스코프이고 그 외는 다 지역 스코프이다.

코드스테이츠 수업자료

전역스코프안의 변수를 전역변수라고 하는데, 전역변수의 유효범위는 문서 전체이다.

 

let name = 'june' //전역변수 name 선언

if(typeof name ==='string')
{
let friend = 'may'// if문 블럭 안에서 선언된 변수 friend 는 if 문 안에서만 유효한 지역변수이다.
name = 'july' // name은 if문 안에서도 유효하다.
}

console.log(name)   //july
console.log(friend) // friend is not defined

지역변수 'friend' 는 if문 안에서만 유효하고 
전역변수 'name' 은 문서 전체에서 유효하다.

 

4. 지역변수는 전역변수보다 항상 높은 우선순위를 가진다.

전역scope에서 선언된 변수를 전역변수, 지역scope에서 선언된 변수를 지역변수라고 한다.

let name = 'june'

function showName(){
	let name = 'july' // 함수안의 지역변수 name과 전역변수 name은 다른 name이다.
	console.log(name); //여기서는 지역변수 name인 'july'가 출력된다.
}

console.log(name); //june (전역변수
showName();  //july (지역변수
console.log(name);  //june (전역변수

 

반응형

'개발 > Javascript' 카테고리의 다른 글

js 클로저  (0) 2021.08.04
JS : 선언자 let, const가 var보다 권장되는 이유  (0) 2021.08.04
JS 객체 dot notation과 bracket notation  (0) 2021.08.03
JS 배열의 Method : Mutable과 Immutable  (0) 2021.07.30
forEach() 사용예시  (0) 2021.07.25