개요
'스코프(Scope)'는 변수의 범위를 의미한다.
Scope의 종류
1. 전역(Global)
2. 지역(Local)
2.1. 함수(function)
2.2. 블록(block)
Scope의 예제
// 전역
const a = 111;
// 지역(함수)
function sayNumber() {
const a = 1;
console.log(a);
}
sayNumber(); // 출력 : 1
console.log(a); // 출력 : 111
자신의 지역 내에 변수가 없는 경우 ScopeChain을 통해 해당하는 변수를 전역 스코프에서 찾는다.
// 전역
const a = 111;
// 지역(함수)
function sayNumber() {
console.log(a);
}
sayNumber(); // 출력 : 111
기존 var의 경우, 함수 스코프를 가졌기 때문에 함수 내에서만 지역 변수가 유지되는 문제가 있었다.
하지만, ES2015(ES6)에서 let, const 키워드의 추가로 함수가 아닌 일반 블록에서도 지역변수를 선언할 수 있게 되었다.
// 전역
const a = 111;
// 지역(블록)
{
const a = 1;
console.log(a); // 출력 : 1
}
console.log(a); // 출력 : 111
출처 : medium.com/@yeon22/javascript-%EC%8A%A4%EC%BD%94%ED%94%84-scope-%EB%9E%80-bc761cba1023
반응형
'■ 웹 개발 > JavaScript' 카테고리의 다른 글
Module이란? (0) | 2020.11.18 |
---|---|
ESLint란? (0) | 2020.11.18 |
Babel이란? (0) | 2020.11.18 |
Ajax란? (0) | 2020.11.13 |
JavaScript란? (0) | 2020.11.10 |