Study/JavaScript

[JAVASCRIPT] 변수 선언 var,let,const의 차이점을 알아보자.

AC 2021. 3. 30. 15:24

1. 변수 선언 방식

 

우선, var는 변수 선언 방식에 있어서 큰 단점을 가지고 있다.

 

var name = 'bathingape'
console.log(name) //bathingape

var name = 'javascript'
console.log(name) //javascript

변수를 한 번 더 선언했음에도 불구하고, 에러가 나오지 않고 각기 다른 값이 출력되는 것을 볼 수 있다.

 

이는 유연한 변수 선언으로 간단한 테스트에는 편리할 수 있겠으나, 코드량이 많아 진다면 어디에서 어떻게 사용될 지도 파악하기 힘들 뿐더러 값이 바뀔 우려가 있다.

 

그래서 ES6 이후, 이를 보완하기 위해 추가된 변수 선언 방식이 let과 const이다.

 

위의 코드에서 변수 선언 방식만 바꿔보자.

 


let name = 'bathingape'
console.log(name) // bathingape

let name = 'javascript'
console.log(name) // Uncaught SyntaxError : Identifier 'name' has already been declared

 

name이 이미 선언 되었다는 에러 메시지가 나온다. (cosnt도 마찬가지)

변수 재선언이 되지 않는다.

그렇다면 let과 const의 차이점은 무엇일까?

 

이 둘의 차이점은 immutable 여부이다.

 

let은 변수에 재 할당이 가능하다. 그렇지만,

 

let name = 'bathingape'
console.log(name) // bathingape

let name = 'javascript'
console.log(name)
// Uncaught SyntaxError: Identifier 'name' has laready been declared

name = 'react'
console.log(name) // react

 

const 는 변수 재선언, 변수 재할당 모두 불가능하다.

 

 

const name = 'bathingape'
console.log(name) // bathingape

const name = 'javascript'
console.log(name)
// Uncaught SyntaxError: Identifier 'name' has laready been declared

name = 'react'
console.log(name) // Uncaught TypeError : Assignment to constant variable.

 

 

LIST