Scope 정리

이종원·2020년 9월 19일
0

Scope
1.변수 접근 규칙에 따른 유효 범위
2. 안쪽 Scope에서 바깥 변수/함수를 접근하는 것이 가능함
3. 바깥쪽 Scope에서 안쪽 변수/함수를 접근하는 것은 불가능함
4. Scope는 중첩이 가능하며 함수안에 함수를 넣는게 가능
5. Global Scope는 최상단 Scope로 전역변수는 어디서든 접근가능
6. 지역 변수는 함수 내에서 전역 변수 보다 더 높은 우선순위을 가짐

let name = "hello"; // 전역 변수

function showName() {
  let name = "world"; // 지역 변수
  console.log(name); // 'world' 2번
}

console.log(name); // 'hello' 1번
showName();
console.log(name); // 'hello' 3번

다른예제

let name = "hello"; // '지역변수에서 재할당으로 인해 'world'

function showName() {
  name = "world"; // 지역 변수 / 선언을 안하고 재할당만함 
  console.log(name); // 'world' 2번
}

console.log(name); // 'hello' 1번
showName(); // 실행으로 인해 전역변수를 지역변수로 재할당
console.log(name); // 'world' 3번

var vs let vs const 변수선언

var : 함수 단위로 자신만의 Scope를 가짐 (레트로)
값 재정의 : 가능
재선언 : 가능

let : Block 단위로 Scope를 가짐 (요즘 트렌드)
값 재정의 : 가능
재선언 : 불가능

const : Block 단위 Scope를 가짐 하지만 let 다름
값 재정의 : 불가능
재선언 : 불가능

0개의 댓글