var, let, const

이서현·2021년 8월 9일
0

JavaScript

목록 보기
1/4

몇 년 전 코드를 찾아볼 때 예시에는 var를 많이 봤던 것 같은데
요즘에는 let이나 const가 많이 보인다. 왜 그럴까?

바로 ES6의 등장!
ES6의 등장으로 많은 변화가 생겼다.
그중 오늘의 주인공인 let과 const도 추가되었다.


변수

변수란? 값을 저장하고 메모리 공간에 붙은 이름, 혹은 메모리 공간 자체를 가리켜 변수라 한다.



변수의 생성 단계

1. 선언 단계
2. 초기화 단계

let aBc; // 선언과 초기화까지
console.log(aBc); //  아직 값을 할당하지 않아 undefined가 나온다

변수를 선언하면 값을 저장하기 위해 메모리 공간을 확보하고,
할당된 값이 없을 땐 undefined를 내보낸다.

3. 할당 단계

let aBc2  = "hello"; // 선언과 초기화, 할당까지
console.log(aBc2); // "hello"

aBc2라는 이름을 가진 메모리 공간을 확보하고 "hello"라는 값을 저장한다.


변수 이름 짓기

변수명에는 영문자, 숫자를 사용할 수 있고,
_(언더스코어),$(달러) 이외의 기호는 사용 불가,
그리고 숫자로 시작할 수 없다.

let aBc; // 가능
let Abc; // 가능
let _aBc; // 가능
let $aBc; // 가능
let a1Bc; // 가능
let 1aBc; // 불가능
let a-Bc; // 불가능

그리고 변수명의 대문자와 소문자를 구분한다.
abcaBc는 다른 변수이다.


선언 방식

var a = "a";
a = "A";
console.log(a); // A

var aa = "aa";
var aa = "AA";
console.log(aa); // AA

아무것도 몰랐던 나에겐 "재할당, 재선언이 가능하네"라고 생각하겠지만,
아주 위험하다고 한다.
10000줄의 코드가 적혀있다는 가정하에 실수로 똑같은 변수명을 사용했다면..?
이러한 상황은 만들지 않기 위해선 재선언은 불가능하지만 재할당은 가능한 let을 사용하자

let b = "b";
let b = "B";
console.log(b);
// Uncaught SyntaxError: Identifier 'b' has already been declared, 재선언 불가

이미 b는 선언되어있어 라고 에러가 뜬다.

let b = "b";
b = "B";
console.log(b); // B

오 재선언은 안되지만 재할당은 가능하네!
이렇게 좋은 게 있는데 var를 쓸 이유가 없지

그럼 const는 어떨까? 재선언, 재할당 둘 다 가능할까? 불가능할까?

const c = "c";
c = "C";
console.log(c); // Uncaught TypeError: Assignment to constant variable.

재할당은 안된다.

const c ="c";
const c = "C";
console.log(c); //Uncaught SyntaxError: Identifier 'c' has already been declared

역시나 재선언도 안된다.
라는 말은 안정성을 높여 줄 수 있다는 말이 된다.
앞으로 나도 let과 const를 사용해야겠다.

profile
🌿💻💪🧠👍✨🎉

0개의 댓글