[ JavaScript ] ES6 : Block scope | var, let 변수 유효범위

2021. 2. 15. 19:39·Archive/Develop
728x90
반응형

 

 

1. Scope

 

: 변수의 유효범위.

 

 

 

var 의 변수 유효범위

 

=> 블록 스코프가 아닌 function 스코프이다.

 

 

 

var num = 1;
function printNum(){
  console.log(num);
  var num = 2;
  console.log(num);
};
printNum(); //2

 

 

 

 

 

 

 

function 레벨에서 호이스팅이 발생하고 있는 것을 확인할 수 있다.

 

 

 

호이스팅 : var, let, const 등 모든 선언문이 올려져 해당 변수가 속한 스코프의 최상단으로 올리는 현상.

 

 

 

함수가 아닌 블록일 경우의 예를 보겠다.

 

 

 

var test = '1';
if(true){
	var test = '2';
    console.log(test);
};
console.log(test);

 

 

 

 

 

 

2 가 두 번 출력되는 것을 알 수 있다.

 

 

1번 라인의 test 는 전역 스코프에,

 

3번라인의 test는 지역 스코프에 선언된 변수이다.

 

 

지역 스코프에 선언된 test 가 호이스팅되어 전역 스코프에 선언된 test 값을 변경하는 것을 볼 수 있다.

 

 

 

 

2. let 선언자

 

 

위의 문제를 해결하기 위한 방법으로, let 선언자를 사용하는 방법이 있다.

 

 

var test = '1';
if(true){
	var test = '2';
    console.log(test);
};
console.log(test);

 

 

 

 

 

let 키워드를 사용했기 때문에 전역 스코프와 블록 스코프를 구별할 수 있다.

 

따라서 위와 같은 출력을 내는 것을 확인할 수 있는 것이다.

 

 

 

결론짓자면, let 은 변수의 유효범위를 블록 스코프로 처리한다.

 

따라서 ES6 에서는 가급적 var 를 지양하고 let 과 const 를 사용하는 것이 좋다.

 

 

 

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ JavaScript ] ES6 : 템플릿 문자열 표현식 | 백틱  (0) 2021.02.15
[ JavaScript ] ES6 : TDZ (Temporal Dead Zone) | let 참조에러  (0) 2021.02.15
[ JavaScript ] ES6 : let 과 const 개념 | let & const 공통점/차이점  (0) 2021.02.14
[ React ] ProtoTypes 설치하기 | ProtoTypes install  (0) 2021.02.13
[ React ] 동적 컴포넌트 생성 | Each child in a list should have a unique "key" prop 에러 해결  (2) 2021.02.12
'Archive/Develop' 카테고리의 다른 글
  • [ JavaScript ] ES6 : 템플릿 문자열 표현식 | 백틱
  • [ JavaScript ] ES6 : TDZ (Temporal Dead Zone) | let 참조에러
  • [ JavaScript ] ES6 : let 과 const 개념 | let & const 공통점/차이점
  • [ React ] ProtoTypes 설치하기 | ProtoTypes install
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    파이썬 기초 문제
    파이썬 알고리즘
    보안뉴스
    Python
    파이썬 기초
    docker
    백준
    오라클
    파이썬 백준
    C++
    Git
    코드업
    백준 파이썬
    파이썬
    백준 풀이
    Django
    자바스크립트 객체
    백준 문제풀이
    Oracle
    자바스크립트 API
    oracle db
    카카오 100일 프로젝트
    코드업 기초
    javascript
    파이썬 문제
    비박스
    장고
    코드업 파이썬 기초 100제
    자바스크립트
    Codeup
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ JavaScript ] ES6 : Block scope | var, let 변수 유효범위
상단으로

티스토리툴바