본문 바로가기

Front-end/JavaScript

변수 const, var, let과 호이스팅

자바스크립트에서는 변수를 선언하는 방법이 3가지가 있다.

1. const 

 - const는 상수를 뜻하며, 변하고 싶지 않은 값들을 만들 때 쓰인다. 

 

2. var

 - let보다 var가 먼저 나옴

 - 문제점

  1) 자바스크립트에서 호이스팅을 할 때 변수도 선언하고 변수의 초기화를 같이 시켜버린다.

     값 할당은 나중에 그 줄 가서 할당을 한다. 

  2) 변수라고 선언도 안했는데 실행이 됨

    ex) console.log(a)

         a = 1

         var a

         console.log(a) 하면 

     실행) undefined

             1 이 됨.

  3) 전역변수와 지역변수의 개념이 확실하지 않음.

  4) 함수만 지역변수로 호이스팅이 되고(함수만 제외하고) for문 if문 안에서 쓴 것들 다 전역변수로 올림

  5) 변수의 이름이 중복이 되면 안되는데 var를 쓰면 자바스크립트에서는 허용이 됨

 

 - 최근 자바스크립트에서는 var를 지양하고 let을 권장하는 추세

 

3. let

 - 2015년 자바스크립트 ES6 버전 업그레이드 때부터 let이 나옴

 - let도 호이스팅이 됨.

 - let이라는 변수는 Temporal Death Zone (TDZ)을 하나 만들어서 a가 호이스팅으로 기억이 된 건 알겠어, 

   하지만 a선언문이 나오기 전까지 너는 a에 접근을 할 수 없어. 일시적으로 너는 죽은 zone이야라는 것을 만들어 줌.

 

호이스팅

 - 호이스팅은 함수가 실행되기 전에 안에 있는 변수들을 범위의 최상단으로 끌어올리는 것

 - 코드는 아래에서 위로 흘러감.

 

전역변수

- 블락 밖에서 선언을 한 어디서든 쓰일 수 있는 변수

 ex) var a = 2

 

지역변수

- 지역변수 블락 {} 안에서 선언된 변수, 블락 안에서만 쓸 수 있음

 ex) function foo () {

        var b = 1

자바스크립트

 - 굉장히 느슨한 언어 (모든걸 용서해 버리는 언어)

 

 

참고 : 코딩알려주는누나

https://youtu.be/fETYLCU2YYc

 

'Front-end > JavaScript' 카테고리의 다른 글

연산자  (0) 2022.03.22
자바스크립트에서의 데이터의 종류  (0) 2022.03.21
JavaScript 주석 표기법  (0) 2022.03.20
Zero-base Numbering  (0) 2022.03.20
콘솔(console)  (0) 2022.03.17