js에서의 변수 선언, 호이스팅 (const, let, var)

정혜인·2022년 11월 24일
0

react

목록 보기
1/14
post-thumbnail

⛔ 개념

변수 선언js에서는 크게 const, var, let으로 가능
const상수 선언, 재할당X의 경우에 사용
var많은 문제가 있기 때문에 사용 X
letvar의 문제점을 보완하기 위해 만들어짐

var의 문제점

  • 1) var로 변수 선언 시 var 키워드 생략 가능
    • 예시를 통한 설명
       name = 'gildong';
       console.log(name); // gildong 출력        
  • 2) var로 변수 선언 후 중복 선언 가능
    • 예시를 통한 설명
       var name = 'gildong';
       console.log(name); // gildong 출력   
       var name = 'hong';
       console.log(name); // hong 출력 
  • 3) 지역/전역 변수 구분 불가
    • 예시를 통한 설명
       for (var i=0; i<5; i++)
       {
           console.log(i); // 1234출력
       }
       console.log(i); // 원래라면 i는 for문의 지역변수이기 때문에 오류가 나야하지만, var로 선언하면 5까지 출력해버림.
  • 4) 변수 호이스팅
    • 예시를 통한 설명
       console.log(name); // undefined 출력   
       var name = 'hong';
       console.log(name); // hong 출력 

💨 정리

js에서는 변수가 생성되면 선언 -> 초기화 -> 할당 순으로 진행
위에서부터 아래로 읽는 것이 아니라, 선언된 변수를 먼저 확인 후 코드 진행


예시에서, 두번째 줄에서 생성된 변수를 먼저 확인하고, 변수를 자체적으로 정의한 후에 첫번째줄부터 코드를 읽어나간다.
따라서 var로 선언하면 name이 두번째 줄에서 선언되었음에도 불구하고 첫번째 줄에서 오류가 아닌 undefined로 출력해버린다.


➡️ 위의 모든 문제들을 let으로 사용하면 해결 가능!!

0개의 댓글