[자바스크립트] 변수

Web/자바스크립트|2022. 10. 19. 23:39

0. 변수란?

  • 값을 저장하는 공간
  • 자료를 저장할 수 있는 이름이 주어진 기억장소
let a = 0; 을 선언하면
- 메모리 어딘가에 0이라는 데이터가 저장된다.
- 각각의 메모리 셀에는 메모리 주소가 있는데,
- a라는 변수는 0이라는 데이터가 저장된 메모리 주소를 가리키고 있는 것이다.


1. 변수 선언

자바스크립트에선 변수를 아래 세 방법으로 선언한다.

  • let
  • const
  • var

1-1. let

  • 재할당 가능 & 재선언 불가능
  • 블록 스코프를 갖는 지역 변수를 선언

1-2. const

  • 재할당 불가능 & 재선언 불가능
  • 선언 시 반드시 초기값을 설정 해야 하며, 이후 값 변경이 불가능
  • let과 동일하게 블록 스코프를 가짐
블록 스코프
- if, for, 함수 등의 중괄호 내부를 기리킴
- 블록 스코프를 가지는 변수는 블록 바깥에서 접근 불가능
let x = 1
if (x === 1) {
  let x = 2
  console.log(x) // -> 2
}
console.log(x) // -> 1

1-3. var

호이스팅
- 변수를 선언 이전에 참조할 수 있는 현상
- var로 선언된 변수는 선언 이전에 참조할 수 있으며, 이러한 현상을 호이스팅이라 함
- 자바스크립트에서 변수들은 실제 실행시에 코드의 최상단으로 끌어 올려지게 되며(hoisted)
- 이러한 이유때문에 var로 선언된 변수는 선언 시에 undefined로 값이 초기화되는 과정이 동시에 일어남
- 반면 let, const는 호이스팅이 일어나면 에러를 발생시킴

- 변수를 선언하기 전에 접근이 가능한 것은 코드의 논리적인 흐름을 깨뜨리는 행위이며 이러한 것을 방지하기 위해 let, const가 추가되었음
--- 즉 var은 현재는 사용하지 않아야 하는 키워드임
- 다만 많은 자바스크립트 코드들이 ES6 이전의 문법으로 작성되어 var을 사용하고 있으므로 호이스팅에 대한 이해가 필요함
  • '호이스팅'되는 특성으로 인해 예기치 못한 문제 발생 가능
    • 따라서 ES6 이후부터는 var대신 const와 let을 사용하는 것을 권장함
  • 재할당 가능 & 재선언 가능
  • ES6 이전에 변수를 선언할 떄 사용되던 키워드
  • 함수 스코프를 가짐

 

 

'Web > 자바스크립트' 카테고리의 다른 글

[자바스크립트] event  (0) 2022.10.24
[자바스크립트] DOM  (0) 2022.10.24
[자바스크립트] sort()  (0) 2022.10.19
[JavaScript] Selector  (1) 2022.10.01
[JavaScript] function - parameter  (0) 2022.09.28

댓글()