ES6 let & cont

October 11, 2020

ES6 let & cont

기존에는 var 키워드로 변수와 상수를 모두 정의 하였지만 ES6에서는 변수와 상수를 구분할수 있는 let 과 const 가 추가 되었다.

let

let 은 변수를 정의할 때 사용된다. 변수는 변하는 값을 의미한다.

let coffee = "americano"

기존 var 키워드로 선언한 변수를 함수 스코프(scope) 변수라고 하며, 함수 안에서 변수를 선언하면 함수 외부를 제외하고 함수 내부 어디서든지 접근할수 있다. 이와 달리 let 은 블록 스코프 변수이며, 블록 스코프 안에서 변수를 선언하면 블록 내부에서만 접근을 할수 있고 외부에서는 접근 할 수 없다.

function coffee() {
  if (true) {
    var esspresso = 1
    let americano = 2
  }

  console.log(esspresso) // 출력 1
  console.log(americano) // if 문 안에서만 접근 가능하므로 reference 에러 발생
}

또한, 같은 스코프에서는 같은 이름의 let 변수를 선언할 수 없다.

function coffee() {
  if (true) {
    let esspresso = 1
    let esspresso = 2 // SyntaxError 발생
  }
}

여러 개의 변수를 선언하기 위해 콤마(,)로 구분하여 연속해서 선언할 수 있다.

let esspresso = 1,
  americano = 2,
  macchiato

console.log(esspresso) // 출력 1
console.log(americano) // 출력 2
console.log(macchiato) // 출력 undefined

여기서 값을 할당하지 않을경우 undefined 가 할당 된다. let 과 var 의 주된 차이점 중 하나는 this 키워드가 참조하는 오브젝트의 차이이다.

let esspresso = 1
var americano = 2

console.log(this.esspresso) // 출력 1
console.log(this.americano) // 출력 undefined

var 키워드로 선언한 변수는 this 가 window 오브젝트를 참조하므로 접근할 수 있지만 let 은 접근 할수 없다

ES6 하위 호환성을 위해 var 키워드를 여전히 사용 가능하지만, ES6 에서는 let 사용을 권장한다.

const

const 은 상수를 정의할 때 사용된다. 상수는 변하지 않는 값을 의미한다.

const coffee = "americano"

기존에는 상수를 선언 할수있는 키워드가 없었다. 그래서 변수,상수 모두 var 로 정의하여 사용 하였다. ES6 에서는 상수를 정의할수 있는 키워드가 추가 되었고 상수 선언은 const 로 할수있다. const 는 블록 스코프 상수 이며, 블록 스코프 안에서 상수를 선언하면 블록 내부에서만 접근 할수 있고 외부에서는 접근 할 수 없다.

function coffee() {
  if (true) {
    var esspresso = 1
    const americano = 2
  }

  console.log(esspresso) // 출력 1
  console.log(americano) // if 문 안에서만 접근 가능하므로 reference 에러 발생
}

또한, 같은 스코프에서는 같은 이름의 const 상수를 선언할 수 없다.

function coffee() {
  if (true) {
    const esspresso = 1
    const esspresso = 2 // SyntaxError 발생
  }
}

한번 정의된 상수는 재정의 할수 없다.

const esspresso = 1
const esspresso = 2 // SyntaxError 발생

여러 개의 상수를 선언하기 위해 콤마(,)로 구분하여 연속해서 선언할 수 있다.

const esspresso = 1, americano = 2, macchiato;

console.log(esspresso); // 출력 1
console.log(americano); // 출력 2
console.log(macchiato); // 출력 undefined

여기서 값을 할당하지 않을경우 undefined 가 할당 된다. const 와 var 의 주된 차이점 중 하나는 this 키워드가 참조하는 오브젝트의 차이이다.

const esspresso = 1
var americano = 2

console.log(this.esspresso) // 출력 1
console.log(this.americano) // 출력 undefined

var 키워드로 선언한 변수는 this 가 window 오브젝트를 참조하므로 접근할 수 있지만 const 은 접근 할수 없다

ES6 하위 호환성을 위해 var 키워드를 여전히 사용 가능하지만, ES6 에서 상수선언은 const 사용을 권장한다.


Written by Jeon Byung Hun 개발을 즐기는 bottlehs - Engineer, MS, AI, FE, BE, OS, IOT, Blockchain, 설계, 테스트