프로그래밍에서 변수란 데이터 저장을 위해 사용하는 메모리 공간을 식별하기 위해 붙인 이름을 말합니다.
10 + 10
위와 같은 코드를 작성했다고 가정했을 때 10 + 10이라는 수식의 답을 담을 수 있는 메모리가 필요합니다.
그 메모리의 주소와 연결해주는 역할을 변수가 하는것이고
var a = 10 + 10;
위와 같이 선언을 해줄 수 있습니다.
10 + 10의 코드를 어딘가의 메모리에 담아주고 코드가 담긴 메모리의 주소의 식별자를 a라고 선언해줍니다.
다른 언어와 다르게 변수의 타입을 지정해 주지 않아도 JavaScript가 String인지 Number인지 등을 판단하여 자동으로 타입을 지정해 주기 때문에 프로그래머가 변수의 타입을 지정해주지 않아도 됩니다.
JavaScript는 ES6이전에는 위에 작성한 코드와 같이 var로 변수를 선언했습니다.
하지만 중복 선언이 가능하다거나 스코프의 개념이 다른 언어와 다른점 등이 불편한 사항중 하나였기에 ES6에서 새로 변수를 선언하는 방법을 정했습니다.
먼저 Const(상수)로 선언을 하는 방법인데 다른 언어의 상수와는 조금 다른 개념일수도 있습니다.
const는 선언과 동시에 값이 할당되어야 하며 수정이 불가능 합니다. 코드를 보면
//선언먼저 한 후에 값의 할당이 불가능 합니다.
const a;
a = 1;
//코드의 재선언 혹은 재할달이 불가능 합니다.
const a = 1;
//100줄의 코드를 썼다고 가정
const a = 2;
a = 2;
위와 같이 선언후에 할당한다거나, 재선언 혹은 재할당이 가능하지 않습니다.
코드를 작성하다보면 변수의 이름 혹은 의도치 않은 재할당을 할수도 있는데 const같은 경우에는 이를 방지해 줍니다.
const box = document.querySelector('.box');
const onClick = e => console.log('hi');
위와 같이 html의 element를 가져온다거나 function을 정의할때 많이 사용합니다.
그렇다면 값이 수정되어야 하는 경우에는 var를 써야 될까요?
아닙니다. const와 같이 나온 let이라는 변수 선언 방법이 있습니다.
//선언후 값의 할당이 가능
let a;
a = 1;
//선언과 할당을 동시에 할 수 있음
let b = 1;
//값의 재 할당이 가능
a = 2;
위와 같이 선언후 할당, 값의 재할당 등이 가능합니다. let은 보통
for(let i = 0; i < 10; i++) {
console.log(i)
}
이런식으로 i가 계속 변해야하는 경우에 사용을 하면 됩니다,
하지만 const와 let모두 재선언은 불가능 하다는 점을 기억해야 합니다.
//var
var a = 1;
var a = 2;
//const,let
const a = 1;
const a = 2;
let a = 1;
let a = 2;
var은 같은 변수명으로 재선언이 가능하지만 const와 let은 불가능 합니다.
나중에 설명할 스코프에서도 정말 큰 차이가 있습니다.
지금까지 변수에 대한 설명 이였습니다. 감사합니다.
'Front-end > Java Script' 카테고리의 다른 글
3. 조건문 (Switch case / Ternary operator) part2 (0) | 2021.05.23 |
---|---|
2. 조건문 (IF) part1 (0) | 2021.05.15 |