이 영역을 누르면 첫 페이지로 이동
hoonDEV 블로그의 첫 페이지로 이동

hoonDEV

페이지 맨 위로 올라가기

hoonDEV

ES6에서 let/const로 Block-scoped 변수 선언하기

  • 2020.06.26 03:29
  • 공부/JavaScript

관련 포스트

JavaScript ECMAScript란?


변수의 Block-scoped 선언

let

let을 이용해 Block-scoped인 변수를 선언할 수 있다. 중괄호로 구분된 영역을 Block-scoped 영역이라고 한다. 이는 기존의 var 키워드의 문제점을 해결할 수 있다.

function funcVar() {
  console.log(k); // undefined
  var k = 1;
  console.log(k); // 1
}
funcVar();

function funcLet() {
  console.log(a); // ReferenceError: Cannot access 'a' before initialization (오류 발생)
  let a = 1;
  console.log(a); // 1
}
funcLet();

var로 선언된 변수 k는 호이스팅에 의해 변수 선언문 이전에도 접근이 가능하며, undefined라는 값을 가진다.
그 이유는 JavaScript에서 var를 사용하면 안되는 이유에서 설명하였으니 패스!

반면에 let은 var와 같이 스코프에 진입할 때 변수가 만들어지지만, 코드 위치에 도달할 때까지 액세스가 불가능하게 해놓았다. (호이스팅이 안되는 것은 아니다!) 따라서 ReferenceError: Cannot access 'a' before initialization과 같은 오류가 뜨는 것이다.

이에 관해 깊이 있게 공부하고 싶다면, 여기를 참고하면 된다.

const

const는 let과 대부분 동일하나, 선언과 동시에 값이 할당되어야 한다. 또한 const이라는 글자 그대로 상수로서 취급되므로 이후 값의 수정이 불가능하다.

'공부 > JavaScript' 카테고리의 다른 글

JavaScript에서의 this와 this 바인딩  (0) 2020.06.27
ES6에서 Arrow Function 사용하기  (0) 2020.06.26
JavaScript에서 var를 사용하면 안되는 이유  (0) 2020.06.26
JavaScript ECMAScript란?  (0) 2020.06.26
ES6에서 배열을 활용하는 다양한 방법  (0) 2020.06.25

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • JavaScript에서의 this와 this 바인딩

    JavaScript에서의 this와 this 바인딩

    2020.06.27
  • ES6에서 Arrow Function 사용하기

    ES6에서 Arrow Function 사용하기

    2020.06.26
  • JavaScript에서 var를 사용하면 안되는 이유

    JavaScript에서 var를 사용하면 안되는 이유

    2020.06.26
  • JavaScript ECMAScript란?

    JavaScript ECMAScript란?

    2020.06.26
다른 글 더 둘러보기

정보

hoonDEV 블로그의 첫 페이지로 이동

hoonDEV

  • hoonDEV의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그

카테고리

  • 분류 전체보기 (91)
    • 일상 (13)
      • 후기 (1)
      • 계획 (11)
    • 공지사항 (1)
    • 알고리즘 (54)
      • 문제풀이 (53)
      • 이론 (1)
    • 공부 (19)
      • React (0)
      • Angular (5)
      • Java (3)
      • C, C++ (3)
      • JavaScript (6)
      • WEB (2)
    • 디자인 (1)
      • UI, UX (1)
    • 개발 (0)
      • boom (0)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 백준
  • 그리디
  • dp
  • 알고리즘
  • javascript
  • 문제풀이
  • es6
  • 이분탐색

나의 외부 링크

정보

훈개발자의 hoonDEV

hoonDEV

훈개발자

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © 훈개발자. Designed by Fraccino.

티스토리툴바