자바스크립트의 변수들은 어디에 선언되어있든 코드가 실행되기 전에 처리가 된다.
자바스크립트의 변수 선언 방법은 3가지가 있다.
var, let, const이 3가지 키워드를 붙이고 식별자라고 불리는 변수명을 적어주면 된다.
var a = 1;
let b = 1;
const c = 1;
식별자의 규칙
문자, _, $로 시작해야한다. (2번째부터 숫자사용가능)let abc;
let _name;
let $food;
let과 var는 데이터를 담을 수 있는 변수이다.
변수이기 때문에 담은 데이터가 변할 수 있는게 특징이다.
var과 let은 선언에서 차이를 보인다.
var a = 1;
console.log(a); // 1
var a = 2;
console.log(a); // 2
var은 위 예시처럼 이미 선언 되어있는 변수를 다시 선언해도 에러가 발생하지 않고
재선언이 된다.
이렇게 되면 예상하지 못한 에러가 발생할 수 있는 문제가 있어 ES6에서 let이 등장했다.
let은 var와 동일하지만 이미 선언된 변수를 다시 선언 할 수 없다.
let a = 1;
console.log(a); // 1
let a = 2; // Uncaught SyntaxError: Identifier 'a' has already been declared
예시처럼 에러가 나온다.
a의 값을 변경하려면
이미 선언된 변수에 대입연산자 =를 사용해서 값을 넣어주면 된다.
let a = 1;
console.log(a) // 1
a = 2;
console.log(a) // 2
const는 상수를 선언할 때 사용한다.
상수이기 때문에 한번 선언된 값은 변경이 불가능하다.
const a = 1;
a = 2; // Uncaught TypeError: Assignment to constant variable.at <anonymous>:2:3
let과 마찬가지로 재선언이 불가능하다.
const a = 1;
const a = 2; // Uncaught SyntaxError: Identifier 'a' has already been declared