javascript는 다른 언어들과 달리 DataType을 구분하지 않고 사용한다. int니 String이니 하는 다른언어에서 쓰이는 방식을 쓰지않는다는 의미이다. 그래서 한 변수안에 정수, 배열, 문자열등 type을 구분하지않고 사용가능하다. 이러한 type의 구분 대신 변수선언 방식에 3가지가 있다.
var
는 선언 후 동일이름으로 재선언과 재할당이 가능하다는 특징이 있다.
var name = 'bathingape'
console.log(name) // bathingape
var name = 'javascript'
console.log(name) // javascript
let
과const
는 var
와 달리 재선언이 불가능하다.
let name = 'bathingape'
console.log(name) // bathingape
let name = 'javascript'
console.log(name)
// Uncaught SyntaxError: Identifier 'name' has already been declared
const
의let
과 의 다른점은 const
는 재선언 뿐만아니라 재할당도 불가능하다.
const name = 'bathingape'
console.log(name) // bathingape
const name = 'javascript'
console.log(name)
// Uncaught SyntaxError: Identifier 'name' has already been declared
name = 'react'
console.log(name)
//Uncaught TypeError: Assignment to constant variable.
요약하자면
var
는 재선언 재할당 모두 가능하며 let
은 재할당은 가능하지만 재선언은 불가하고 const
는 재선언과 재할당 모두 불가능하다.
표로 비교하면 각각 다음과 같다.
참고자료
https://velog.io/@bathingape/JavaScript-var-let-const-%EC%B0%A8%EC%9D%B4%EC%A0%90