
헷갈릴 수 있는 변수 선언 키워드 3가지를 정리해보도록 하겠다.
var score = 100
console.log(`철수의 점수는 ${score}점입니다.`) //'철수의 점수는 100점입니다.'
var score = 80
console.log(`영희의 점수는 ${score}점입니다.`) //'철수의 점수는 80점입니다.'
score라는 변수를 var키워드로 선언한 후 코드의 아래쪽에서 동일한 변수명으로 다시 score를 선언하여도 에러가 나지 않는다.
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 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가 나는 것을 확인할 수 있다.
