Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

나 개발자 할래요

변수와 상수 본문

개발자 되는 법.../모던 js...

변수와 상수

개발_자 2024. 12. 13. 12:29

var, let, const

1. var

ES5 이전부터 사용된 변수 선언 방식

 

특징

  • 함수 스코프(Function Scope)
  • 재선언 가능
  • 재할당 가능
  • 변수 호이스팅(Variable Hoisting)

2. let

ES6에서 도입된 변수 선언 방식

 

특징

  • 블록 스코프(Block Scope)
  • 재선언 불가능
  • 재할당 가능
  • 변수 호이스팅(Variable Hoisting)

3. const

ES6에서 도입된 상수 선언 방식, 값을 변경할 수 없는 변수

특징

  • 블록 스코프(Block Scope)
  • 재할당 불가능
  • 재선언 불가능
  • 변수 호이스팅(Variable Hoisting)
  • 참조형 데이터의 불변성 아님

호이스팅(Hoisting)

선언이 코드 상단으로 끌어올려지는 현상

var는 변수를 선언과 동시에 undefined로 초기화함

console.log(greeter); // undefined
var greeter = "say hello"

위 코드가 실행되면 undefined가 뜸

 

실행컨텍스트의 레코드에서는 아래와 같은 단계가 이루어짐

// 생성단계
var greeter; // 1. 선언
greeter = undefined; // 2. 초기화
console.log(greeter); // undefined
// 실행단계
greeter = "say hello" // 3. 할당

let과 const는 변수를 선언만하고 초기화 하지 않음. → 접근 시 에러 발생

 

함수 스코프(function scope)

함수 내에서 선언된 변수는 함수 내에서만 유효하며, 함수 외부에서는 접근할 수 없음 블록 스코프의 상위 개념

 

블록 스코프(Block Scope)

변수가 선언된 블록(중괄호로 둘러싸인 영역, {} )과 그 하위 블록 내에서만 사용 가능

하나의 블록은 중괄호 속에서 존재하며, 중괄호 안에 있는 것은 모두 블록 범위에 해당됨

 

변수 이름 명명 규칙

  • 숫자와 문자를 사용하되 첫 글자는 숫자가 될 수 없음
  • 특수기호는 $와 _만 사용 가능
  • 비 라틴계 언어의 문자나 상형문자도 사용할 수 있지만 잘 쓰이진 않음

 

참고한 블로그

https://enjoydev.life/blog/javascript/2-var-let-const

 

면접 단골 질문! 호이스팅을 곁들인 var, let, const의 차이

변수 선언 키워드인 var, let, const의 차이를 스코프와 호이스팅의 관점에서 다뤄보겠습니다.

enjoydev.life

 

'개발자 되는 법... > 모던 js...' 카테고리의 다른 글

형 변환  (0) 2024.12.18
자료형  (1) 2024.12.17
엄격 모드  (0) 2024.12.12
코드 구조  (0) 2024.12.11