메모리에 데이터를 저장하는 방법으로, 이름이 있는 저장소라고 생각하면 된다.
let name;
변수를 선언(declaration)함으로 name이라는 이름을 가진 메모리 공간을 확보하고,
name = 'kim';
메모리 공간에 데이터를 할당(assignment)해 문자열 'kim'을 저장할 수 있다.
그리고 아래와 같이 변수 선언과 값 할당을 한 줄에 작성할 수도 있다.
let name = 'kim';
var, let, const 이렇게 세가지 키워드가 있다.
var는 재선언, 재할당이 가능한 키워드다. let으로 선언한 변수와 유사하지만, 가장 오래된 변수 키워드로 요즘은 거의 쓰이지 않는다.
1️⃣ var를 사용했을 때
if (true) {
var test = true; // 'let' 대신 'var'를 사용했습니다.
}
alert(test); // true(if 문이 끝났어도 변수에 여전히 접근할 수 있음)
let을 사용했을 때
if (true) {
2️⃣ let test = true; // 'let'으로 변수를 선언함
}
alert(test); // Error: test is not defined
블록 기준으로 스코프가 생겨야 보다 안전하게 충돌 위험없이 코드를 작성할 수 있다.
1️⃣ var를 사용했을 때
var user = "Pete";
var user = "John"; // 에러 발생하지 않음
alert(user); // John
2️⃣ let을 사용했을 때
let user;
let user; // SyntaxError: 'user' has already been declared
let은 재선언이 불가능하고 재할당만 가능한 키워드다.
let str = "hello";
document.write(str); // hello
let str = "hi"; // let은 변수 재선언 불가능
document.write(str); // Error
str = "bye"; // let은 변수 재할당 가능
document.write(str); // bye
const는 상수라고도 하는데, 이는 변화하는 않는 변수이기 때문이다. 따라서 재선언, 재할당 모두 불가능하다.
const myBirthday = '18.04.1982';
myBirthday = '01.01.2001'; // error, can't reassign the constant!
가끔 대문자로 작성된 상수를 볼 수 있는데, 주로 대문자 상수는 '하드 코딩한' 값의 별칭을 만들 때 사용한다.
let – 모던한 변수 선언 키워드
var – 오래된 변수 선언 키워드. 권장되지 않음.
const – 값을 변경할 수 없는 변수 선언 키워드(상수)