[JS] 변수(const, let) 종류와 차이

jellyjw·2022년 10월 21일
0
post-thumbnail

변수란?

변수(variable)는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다.

선언(declaration)

선언은 변수명을 자바스크립트 엔진에 알리는 것이다.
값을 할당하지 않은 상태이다. (할당과 선언은 다르다)

let movie;

할당(assignment, 대입, 저장)

변수에 값을 저장하는 것을 할당이라고 한다.
할당할 때 쓰이는 = 표시는 같다는 표시가 아니라 할당 연산자이다.

let movie = "헤어질 결심"

참조(reference)

const movieLength = movie.length // 6

변수에 저장된 값을 읽어 들이는 것을 참조라고 한다.

함수 레벨 스코프와 블록 레벨 스코프의 차이

함수 레벨 스코프

함수 내에서 선언된 변수는 함수 내에서만 유효하며, 함수 외부에서는 참조할 수 없다. 즉, 함수 내부에서 선언한 변수는 지역 변수이며 함수 외부에서 선언한 변수는 모두 전역 변수이다.

블록 레벨 스코프

모든 코드 블록(함수, if 문, for 문, while 문, try/catch 문 등) 내에서 선언된 변수는 코드 블록 내에서만 유효하며 코드 블록 외부에서는 참조할 수 없다. 즉, 코드 블록 내부에서 선언한 변수는 지역 변수이다.

const와 let

변수의 선언은 var, const, let 키워드로 할 수 있으며,
ES6에서 constlet이 추가되었다.
ES6을 사용할 경우 var는 사용하지 않는다.

const

const는 블록 레벨 스코프를 가지며, 변하지 않는 값, 즉 상수를 위해 사용한다.
let과 달리 재할당이 금지된다.
또한 const는 반드시 선언과 동시에 할당이 이루어져야 한다.

const name = 'jiwoo'
name = 'minwoo' // TypeError 에러 발생

let

let도 const와 마찬가지로 블록 레벨 스코프를 가진다.
const와 다른 점은, 재할당이 가능하고 선언과 할당이 동시에 이루어지지 않아도 된다.

let age; // 선언
age = 30; //선언과 할당이 따로 이루어짐
age = 45; //재할당 가능
profile
남는건 기록뿐👩🏻‍💻

0개의 댓글