[JavaScript] var, let, const

조혜인·2022년 8월 21일
post-thumbnail

헷갈릴 수 있는 변수 선언 키워드 3가지를 정리해보도록 하겠다.

📌 var

  • var는 이름 중복(재선언)이 가능하다.
  • 데이터 값의 수정이 가능하다.
var score = 100
console.log(`철수의 점수는 ${score}점입니다.`)		//'철수의 점수는 100점입니다.'

var score = 80
console.log(`영희의 점수는 ${score}점입니다.`)		//'철수의 점수는 80점입니다.'

score라는 변수를 var키워드로 선언한 후 코드의 아래쪽에서 동일한 변수명으로 다시 score를 선언하여도 에러가 나지 않는다.


📌 let

  • let은 이름 중복(재선언)이 불가능하다.
  • 데이터 값의 수정이 가능하다.
let score = 100
console.log(`철수의 점수는 ${score}점입니다.`)	//'철수의 점수는 100점입니다.'

/* ERROR !! */
let score = 80		//SyntaxError: Identifier 'score' has already been declared.
console.log(`영희의 점수는 ${score}점입니다.`)

/* SUCCESS */
score = 80
console.log(`영희의 점수는 ${score}점입니다.`)	//'철수의 점수는 80점입니다.'

score 변수를 let키워드로 선언하였을 경우에는 그 이후에 다시 score변수를 선언할 수 없다. 즉, 한 번 let으로 선언한 변수를 아래에서 재선언할 수 없다. 따라서 위의 예시에서 SyntaxError가 발생한 것을 볼 수 있다. Success코드에서는 데이터 값의 수정은 가능한 것을 확인할 수 있다.


📌 const

  • const는 상수를 선언할 때 사용한다.
  • const는 이름 중복(재선언)이 불가능하다.
  • 상수이므로 데이터 값의 수정이 불가능하다.

💡 상수 : 변하지 않는 일정한 값을 갖는 숫자

const total = 100
let score = 80

console.log(`철수는 총점 ${total}점 중 ${score}점을 받았습니다.`)  //'철수는 총점 100점 중 80점을 받았습니다.'

/* ERROR !! */
let total = 0		//SyntaxError: Identifier 'total' has already been declared. 
total = 200			//TypeError: Assignment to constant variable

상수 total을 선언하였을 경우 그 이후에 다시 total변수를 선언할 수 없으며, total의 값을 수정할 수 없다. 재선언하였을 경우 SyntaxError가 나는 것을 확인할 수 있고, total의 값을 수정하였을 경우 TypeError가 나는 것을 확인할 수 있다.


📌 정리

  • var, let, const의 주요 특징을 표로 정리해보았다. 세 변수 키워드의 차이점을 위주로 알아두면 필요한 시점에 더 편리한 코드를 작성할 수 있을 것 같다.
profile
코딩은 역시 재밌군

0개의 댓글