1. 변수
이름을 가지고 있는 데이터 1개의 메모리 공간입니다 (코드는 저장할 수 없습니다)
1-2 변수 생성 과정
변수를 생성하는데도 거쳐가는 과정이 있습니다
ⓐ 선언 단계 (이름을 지어서 메모리 공간을 만들었음을 알려주는 단계)
ⓑ 초기화 (생성된 메모리 공간 안에 처음 값을 지정하는 단계, 따로 지정하지 않으면 undefined가 자동부여)
ⓒ 할당 (대입 기호(=)를 통해 다른 내용을 넣는 단계, undefined로 초기값이 지정된 변수에다가 실제값을 재할당)
1-2-1 변수 선언 방법 과 차이점
이중에서도
자바스크립트 변수의 선언단계에서는 3가지 방법이 있습니다
① var
② let
③ const
var, let, const의 차이점이라면
변수를 생성하는 과정에서 차이를 발견할 수 있는데요
var은 호이스팅o, 재선언o, 재할당o
let은 호이스팅x, 재선언x, 재할당o
const는 호이스팅x, 재선언x, 재할당x
여기서 재할당, 호이스팅, 재선언의 의미를 살펴보면
let에서 하는 재할당이라는것은 아래와 같은 동작과정을 의미합니다
이미 선언이 되어 있는 let 변수에서는
재할당을 하게 되면
let을 붙이지 않습니다
var 에서만 가능한 호이스팅(hoisting)은 아래와 같은 동작 과정을 의미합니다
let, const 는 선언 단계가 먼저 존재하고 있어야만
변수의 사용이 가능한데요
var의 경우 코드 어디에 위치하든 선언만 하면
선언 전에 변수가 호출되더라도
var의 선언 부분만 최상단에 자동으로 끌어올려져 자유롭게 사용할 수 있게 됩니다
그다음 var에서만 가능한 재선언은 아래와 같은 과정을 의미하는데요
이미 선언된 변수명을 가지고 다시 재선언을 할 수 있다는 것인데요
var처럼 재선언이 된다는 것은
코드의 변경이 쉽다는 의미가 됩니다
간단한 코드일 때는 상관이 없지만
수억 개의 복잡한 코드가 있을 때는 어떤 변수명을 사용했는지 기억이 안 날 때가 있는데요
이때의 재선언은 문제가 발생할 수 있습니다
때문에 변수는
변경이 거의 불가능한 const 타입이 주로 사용되며
재할당이 필요한 경우에는 let을 사용합니다
2. 지역변수, 전역변수
이러한 변수는
코드에서 많이 사용되는데요
코드에서도
변수가 위치하는 곳에 따라
전역 변수와 지역변수로 구분합니다