자바스크립트에서는 데이터를 참조(불러오기)
하기 위하여,
변수에 값이나 함수를 할당(변수에 값을 연결)
하고,
그 변수의 이름을 저장하는 것을 선언
이라고 한다.
<예시>
var name // 선언
name = "Kang" // 할당
var name = "Kang" // 선언+할당
이 변수를 선언하는 방법에는 var
let
const
3 가지가 있다.
무려 let
const
는 ES6(2015년)에 추가된 문법이다.
그 이전에는 어떻게 살았을 지 상상이 안간다.
그래서 var
let
const
무엇이 다르냐?
1. var
var 은 같은 변수에 중복 선언이 가능하다.
당연히 재할당도 가능하다.
var name = "Kang" // 변수 name 에 "kang"을 할당하는 선언
var name = "Kim" // 변수 name 에 "kim"을 재할당하는 선언
이러고나서 콘솔을 찍으면...
console.log(name) // "Kim"
늦게 선언한 "Kim"이 할당되어 있는 것을 알 수 있다.
var
은 왜 문제가 될까?
코드가 짧으면 자기가 선언한 변수를 다 기억할 수 있으니 문제가 되지 않으나,
코드가 길어져서 1000줄씩 되고,
팀 프로젝트를 진행할 경우 다른 사람이 같은 변수에 재할당하여
기존 값이나 함수가 없어질 우려가 있다.
이에 실무에서는 let
이나 const
의 사용을 권장한다고 한다.
2. let
var
의 문제점을 보완하기 위해 ES6에서 let
과 const
가 추가 되었다.
let
은 중복선언이 불가하며, 재할당은 가능하다.
<중복선언 불가>
let name = "Kang" // 변수 name에 "Kang" 선언
let name = "Kim" // Error!! name은 이미 선언됨!!
<재할당은 가능>
let name = "Kang" // 변수 name에 "Kang" 선언
name = "Kim" // 변수 name에 "Kim" 재할당
3. const
const
는 let
에서 재할당까지 불가능하게 선언하는 방식이다.
<중복선언 불가>
const name = "Kang" // 변수 name에 "Kang" 선언
const name = "Kim" // Error!! name은 이미 선언됨!!
<재할당 불가>
let name = "Kang" // 변수 name에 "Kang" 선언
name = "Kim" // Error!! 재할당 불가!!
var
은 긴 코드나, 협업 과정에서 문제가 될 여지가 있으니,
재할당이 필요할 경우에 let
재할당이 필요 없는 상수(constant)에는 const
를 사용하도록 하자.