변수(variable)

이다은·2023년 3월 7일
0
post-thumbnail

🥸 변수는 데이터를 저장할 수 있는 메모리 공간을 말합니다. 코드의 재활용을 높여주고, 가독성을 좋게 만들어주며, 유지보수에 용이하여 사용합니다. 변수를 선언할 때에는 var, let, const, class, function을 사용하며, 해당 글에서는 var, let, const의 차이에 대해 다루겠습니다.

var

  • 함수 범위 스코프
function test() {
  if (true) {
  	var x = 10;
  }
  console.log(x); // 10 -> 변수가 선언된 함수 내부라면 어디서든지 접근 가능
}

test();

  • 중복 선언 가능
 var x = 10;
 var x = 20;

console.log(test); // 20

  • 호이스팅시 변수의 선언과 초기화가 동시에 이루어짐
console.log(x); // undefined

var x = 10;
// 초기화 단계에서 undefined로 초기화 됨


let/const

  • 블록 범위 스코프
function test() {
  if (true) {
  	let x = 10;
  }
  console.log(x); // x is not defined -> 변수가 선언된 블록 내부가 아니라서 접근 불가
}

test();

  • 중복 선언 불가
 let x = 10;
 let x = 20;

console.log(test); // Identifier 'x' has already been declared

  • 호이스팅시 변수의 선언만 이루어짐
console.log(x); // cannot access 'x' before initialization

let x = 10;
// 초기화 되지 않으면 변수 참조 불가


const

  • 재할당 불가 (객체는 재할당 가능)
const x = 10;
x = 20; // Assignment to constant variable


const obj = {a: 1, b: 2};
obj.c = 3;

console.log(obj); // {a: 1, b: 2, c: 3}

  • const는 선언과 동시에 할당이 이루어져야함
const x; // Missing initializer in const declaration

🧐 호이스팅에 대해 궁금하다면 이곳을 클릭하세요!
해당 글은 책 모던 자바스크립트 deep dive를 참고하여 작성하였습니다.

profile
안녕하세요

0개의 댓글