JS LAB
JS 1.3 · 1부. 기본 문법

변수: let과 const

값에 이름을 붙입니다. 다시 넣을 수 있는 것과 없는 것을 구분합니다.

예상 학습 시간 13분 실행 단추가 있는 예제는 고쳐서 실행해 볼 수 있습니다 난이도 입문
개념 설명

값에 이름을 붙입니다

앞 단원에서는 값을 그 자리에 적어 출력했습니다. 같은 값을 여러 번 사용하거나 나중에 바꿔야 한다면, 값에 이름을 붙여 두는 편이 낫습니다. 그 이름을 변수(variable) 라고 합니다.

이름을 붙이는 방법은 두 가지입니다.

  • let — 나중에 다른 값을 다시 넣을 수 있습니다.
  • const — 한 번 넣으면 바꿀 수 없습니다.
최소 예제 · 편집 가능

let 으로 값 바꾸기

같은 이름에 다른 값을 넣고 다시 출력합니다.

script.js
let count = 1;
console.log(count);

count = 2;
console.log(count);
출력
1 2

선언할 때만 let 을 적습니다. 두 번째 줄처럼 값을 다시 넣을 때는 이름과 = 만 적습니다.

상세 사용법

const 는 다시 넣을 수 없습니다

const 로 선언한 이름에 값을 다시 넣으면 실행이 멈추고 오류가 나옵니다. 아래 예제를 실행해 확인해 보세요.

script.js
const name = "홍길동";
console.log(name);

name = "김철수";
출력 · 크롬
홍길동 TypeError: Assignment to constant variable.
출력 · 파이어폭스
홍길동 TypeError: invalid assignment to const 'name'

불편해 보이지만 도움이 됩니다. 바뀌면 안 되는 값을 const 로 두면, 실수로 바꾸는 코드를 작성했을 때 그 자리에서 알려 줍니다.

기본은 const 입니다. 값을 바꿔야 하는 것이 분명할 때만 let 을 사용합니다.

상세 사용법

이름 짓는 규칙

변수 이름에는 영문자와 숫자, _, $ 를 사용할 수 있습니다. 숫자로 시작할 수는 없습니다.

script.js
const userName = "홍길동";
const user_age = 27;
const isMember = true;

console.log(userName, user_age, isMember);
출력
홍길동 27 true

이름이 여러 낱말이면 첫 낱말은 소문자로, 그다음 낱말은 대문자로 시작하는 방식을 많이 사용합니다(userName). 대소문자를 구분하므로 usernameuserName 은 다른 이름입니다.

흔한 실수

처음에 자주 걸리는 것

1. 선언하지 않고 사용합니다

let 이나 const 없이 이름부터 읽으면 그런 이름이 없다고 알려 줍니다.

ReferenceError: count is not defined
2. const 에 값을 다시 넣습니다

바꿔야 하는 값이면 let 으로 선언해야 합니다.

TypeError: Assignment to constant variable.
3. 같은 이름을 두 번 선언합니다

한 번 선언한 이름은 다시 선언할 수 없습니다. 값만 바꾸면 됩니다.

SyntaxError: Identifier 'count' has already been declared
실습 문제

직접 해보기

1. 값을 두 번 바꿔 출력하기 난이도 하

score 라는 이름에 10 을 넣어 출력하고, 20 으로 바꿔 다시 출력하세요.

값을 바꿔야 하므로 const 가 아니라 let 입니다.
let score = 10; console.log(score); score = 20; console.log(score);
2. 무엇으로 선언해야 할까요 난이도 중

아래 셋을 letconst 가운데 무엇으로 선언해야 할지 정하고, 그 이유를 생각해 보세요.

  • 사이트 이름
  • 장바구니에 담긴 상품 수
  • 원주율 3.14
const · let · const — 바뀌는 것은 장바구니 상품 수 하나뿐입니다.
요약

이 단원의 정리

  • let 은 값을 다시 넣을 수 있고, const 는 넣을 수 없습니다.
  • 기본은 const 이고, 바꿔야 할 때만 let 을 사용합니다.
  • 선언은 한 번만 합니다. 값을 바꿀 때는 이름과 = 만 적습니다.
  • 이름은 대소문자를 구분하고, 숫자로 시작할 수 없습니다.
  • 선언하지 않은 이름을 읽으면 ReferenceError 가 나옵니다.