[Javascript] let, const, var (scope 개념에서의 차이)

SEOKWOO LEE·2022년 10월 23일
0

[Javascript & Node.js]

목록 보기
16/16

내용을 보기 전 Scope의 개념에 대해서 알아야한다.
[Javascript] Scope

Javascript에는 Global Scope와 Function Scope 두가지만 있었으나 ES6 부터 let, const가 추가되면서 Block Scope 개념이 추가되었다.

{
  let a = 1
  const b = 2
  console.log(a)  // 1
  console.log(b)  // 2
}

console.log(a)  // Error
console.log(b)  // Error

블록 내에서 선언된 a,b는 블록 내에선 사용이 가능하나 외부에선 사용할 수 없다.


var 문은 변수를 선언하고, 선택적으로 초기화할 수 있습니다. -MDN

let 명령문은 블록 스코프의 범위를 가지는 지역 변수를 선언하며, 선언과 동시에 임의의 값으로 초기화할 수도 있습니다. -MDN

const 선언은 블록 범위의 상수를 선언합니다. 상수의 값은 재할당할 수 없으며 다시 선언할 수도 없습니다. -MDN

varletconst
스코프함수블록,함수블록,함수
글로벌 스코프OXX
함수 스코프OOO
블록 스코프XOO
재선언OOX
재할당OXX
{
  let a = 1
  const b = 2
  var c = 3
  
  cnosole.log(a)  // 1
  console.log(b)  // 2
  console.log(c)  // 3
}

console.log(a)  // Error 
console.log(b)  // Error
console.log(c)  // 3

function test(){
  console.log(a)  // Error
  console.log(b)  // Error
  console.log(c)
}

test()  // 3 

var은 전역변수 기능을 가지고 있어 블록 내에서 선언되더라도 다른 함수에서 사용 가능하나 나머지 let, const는 사용 불가능하다.

profile
내가 보기위해 만든 나만의 공부 노트

0개의 댓글

관련 채용 정보