var, let, const

조향래·2022년 8월 24일
0

var

  • 중복 선언이 가능. 다시 말해, 동일한 이름으로 여러번 선언이 가능하다.
    그리고 마지막에 할당된 값이 변수에 저장된다.
var num = 123
console.log(num) // 123

var num = 456
console.log(num) // 456

var를 사용할 경우, 기존의 선언해둔 변수의 존재를 잊고 값을 재할당하는 실수가 발생할 가능성이 크고 특히, 코드량이 많아졌을 때, 같은 이름의 변수명이 여러번 선언되었다면 어디서 문제가 발생했는지 파악하기 힘들고 의도치 않게 값이 바뀔 우려가 있다.

let

  • 중복선언은 불가능하지만 재할당이 가능하다.
let season = 'spring'
season = 'summer'
console.log(season) // summer

let seson = 'winter'
// Uncaught SyntaxError: Identifier 'name' has already been declared

처음에 변수 season에 spring을 할당했지만, 다시 summer를 재할당 했기 때문에 console.log에서 summer가 출력되었다.
하지만 다시 let season = 'winter'와 같이 중복선언을 하면 에러 메시지가 출력된다.

const

  • const 는 constant(상수)를 뜻하기 때문에 한 번만 선언이 가능하며 값을 바꿀 수도 없다. 즉, 중복 선언과 재할당이 불가능하다.
const fruit = 'apple'

const fruit = 'banana'
// Uncaught SyntaxError: Identifier 'name' has already been declared

fruit = 'grape'
// Uncaught TypeError: Assignment to constant variable

위 코드처럼 const는 중복 선언 및 재할당을 하면 에러 메시지가 출력된다.

하지만 배열과 객체의 값을 변경하는 것은 가능하다.

const arr = [1, 2, 3]

list = 4
// TypeError: Assignment to constant variable

list.push(4)
console.log(list) // [1, 2, 3, 4]

0개의 댓글