개발하는 사막여우
개발하는 사막여우
개발하는 사막여우
전체 방문자
오늘
어제
  • All (310)
    • Books (13)
      • 읽기 좋은 코드가 좋은 코드다 (13)
    • Study (6)
      • Blockchain (3)
      • Algorithm (3)
    • Baekjoon (36)
    • Programmers (166)
    • LeetCode (15)
    • Open Source (1)
      • Youtube Popout Player (1)
    • Language (32)
      • Python (9)
      • JS (8)
      • Java (5)
      • HTML (6)
      • CSS (4)
    • Library & Framework (15)
      • React.js (15)
    • IDE (2)
      • IntelliJ (2)
    • Airdrop (9)
    • Tistory (2)
    • etc.. (12)
      • Cozubi (6)
      • lol-chess (0)

블로그 메뉴

  • Github

공지사항

인기 글

태그

  • 프로그래머스
  • 백준
  • 카카오 알고리즘 문제
  • 신규 코인 에어드랍
  • 코인줍줍
  • 파이썬
  • 클린 코드
  • Cozubi
  • 프로그래머스 위클리 챌린지
  • 코딩테스트연습
  • 2018 KAKAO BLIND RECRUITMENT
  • Java
  • 알고리즘문제풀이
  • 클린 코드 작성법
  • programmers
  • 코주비
  • 카카오 공채
  • 카카오 코딩테스트
  • Python
  • 읽기 좋은 코드가 좋은 코드다

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
개발하는 사막여우

개발하는 사막여우

[Javascript] var, let, const  차이 / 자바스크립트 변수 상수
Language/JS

[Javascript] var, let, const 차이 / 자바스크립트 변수 상수

2021. 1. 5. 14:47
반응형
👀 변수, 상수 속성 종류 (var, let, const) 👀
1. var(변수) : 재선언, 재할당 가능
2. let(변수) : 재할당 가능
3. const(상수) : 재선언, 재할당 불가

프로그래밍에서는 어떤 값을 생성할 때 변수와 상수로 나누어 사용하게끔 권장됩니다.

Javascript는 es5까지는 var 하나만을 사용하여 따로 차이를 두지는 않았었지만, es6부터 let과 const가 나옴으로써 변수와 상수를 구분할 수 있게 되었습니다.

 

변수(variable)란 값이 변할 수 있는 statement를 의미하고, 상수(constant)란 한번 초기화된 값이 변할 수 없는 statement를 의미합니다.

Javascript에서 사용할 수 있는 3가지 statement를 위의 변수 / 상수 개념으로 나누자면, 

초기화 후 값을 변경시킬 수 있는 var과 let은 변수에 속하고, 값을 변경시킬 수 없는 const는 상수에 속합니다.

 

그럼 var과 let은 동일한 거 아니냐? 왜 나눠진 것이냐? 하실 수 있는데,

바로 var은 function-scope & global-scope이고, let과 const는 block-scope이기 때문입니다.

간단하게 말해서 var은 함수 & 전역 단위로 사용하기 위한 statement이고, let과 const는 대괄호{} 단위로 사용하기 위한 statement인 것입니다.

 

1. var

  • 선언 후 초기화 가능
  • 재선언 가능
  • 최초 초기화 후 값 변경 가능
  • function-scoped(함수 단위), globally-scoped(전역 단위)로 선언됨
// 값 변경 가능!
var a = 10;
a = 99;
console.log("a: "+a);
// > a: 99

// 선언과 초기화 따로따로 가능!
var d;
d = 100;
console.log("d: "+d);
// > d: 100

 

2. let

  • 선언 후 초기화 가능
  • 최초 초기화 후 값 변경 가능
  • block-scoped(블록 단위)로 선언됨
// 값 변경 가능
let b = 10;
b = 99;
console.log("b: "+b);
// > b: 99

// 선언과 초기화 따로따로 가능!
let e;
e = 100
console.log("e: "+e);
// > e: 100

 

3. const

  • 상수 선언시 사용
  • 선언과 동시에 초기화 해야함
  • 최초 초기화 후 값 변경 불가능
  • block-scoped(블록단위)로 선언됨
// 값 변경 불가능!
const c = 10;
c = 99;
console.log("c: "+c);
// > TypeError: Assignment to constant variable

// 선언 및 초기화 구분 불가능!
const f;
f = 100;
console.log("f: "+f);
// > SyntaxError: Missing initializer in const declaration

 

 

 

<참고>

developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var

developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let

developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const

mygumi.tistory.com/130

 

반응형

'Language > JS' 카테고리의 다른 글

[Javascript] 자바스크립트 문자열 뒤집기  (0) 2021.06.15
[Javascript] 디바운싱과 쓰로틀링 / 연속 이벤트 제어  (0) 2021.06.08
[Javascript] Map 사용법  (0) 2021.06.08
[Javascript] 일반 함수 vs 익명 함수  (4) 2021.05.28
[Javascript] for 반복문 종류 ( for / for-in / for-of )  (0) 2021.05.10
    'Language/JS' 카테고리의 다른 글
    • [Javascript] 디바운싱과 쓰로틀링 / 연속 이벤트 제어
    • [Javascript] Map 사용법
    • [Javascript] 일반 함수 vs 익명 함수
    • [Javascript] for 반복문 종류 ( for / for-in / for-of )
    개발하는 사막여우
    개발하는 사막여우
    개발개발 주저리주저리

    티스토리툴바