본문 바로가기
자바스크립트

[자바스크립트] 변수, 상수에 대해

by 이Dino 2024. 7. 3.

변수

- 變(변할 변)數(셈 수) , Variable

위의 의미 그대로, 변할 수 있는 수를 의미 합니다.

변수를 선언 할 때 사용하는 키워드

var, let

var a = 10;
let b = 10;
a = 20;
b = 30;
console.log(a, b)

 위의 코드를 실행 시키면, 변수의 값이 마지막에 할당한 값으로 변경되어 있는 걸 볼 수 있습니다.

이렇게 변경 될 수 있는 걸, mutable 이라고 합니다.

 

변수는 선언 시, 선언과 할당을 동시에도 가능하고, 따로도 가능합니다.

var a;
a = 10;
var b = 20;
let c;
c = 30;
let d = 40;
console.log(a, b, c, d)

let e = 100, f = 200, g = 300;
console.log(e, f, g)

 

결과:

 

아래 변수 선언, 할당이 이루어 질 때, 메모리에서 어떤 일이 일어나는 지 확인해보면,

let e = 100;
let f = 200;
e = 300;

 

- 변수 e 와 값 100이 메모리에 할당 됩니다.

- 값 100의 주소가 x라고 하면, e는 주소 x를 가지고 있습니다.

- e는 주소 x를 가지고 100이라는 값을 가르키게 됩니다. 

- e 같은 변수를 포인터 변수라고 합니다.

- 자바스크립트의 모든 변수는 포인터 변수 입니다.

- f와 200도 동일합니다,

- 이 때 e = 300을 하게 되면, 300이라는 값이 메모리에 할당됩니다.

- 이 300의 주소가 x``라고 할 때, e는 x``를 가지게 됩니다.

- 따라서 e가 가르키는 값이 300으로 변경됩니다.

 

상수

- 常(항상 상)數(셈 수), Constant

위의 변수와는 반대의 의미로, 항상 같은 수를 의미 합니다.

상수를 선언 할 때 사용하는 키워드

const

const c = 10;
c = 20;

위의 코드를 실행 시키면, 상수를 변경할 수 없어 에러가 발생 합니다.

이렇게 변경 될 수 없는 걸, immutable 이라고 합니다.

 

상수는 변수와 달리 선언과 할당을 분리 할 수 없습니다.