home강의 홈으로
Section 1. 자바스크립트의 기본적인 사용
Lesson 3. 변수와 상수 - 데이터를 담는 주머니

😅 TMI 주의



⚠️ var는 역사의 뒤안길로

  • letconst를 사용할 것
  • var에 대해서는 이후에...



I. 데이터를 담는 곳

console.log('Hello,', '철수'); // 값들을 주머니에 담아 사용하기 const SALUTATION = 'Hello,'; let person = '철수'; console.log(SALUTATION, person); person = '영희'; console.log(SALUTATION, person);
  • 값의 의미 나타냄
  • 값의 재활용
  • 변경되는 상태를 가리키는 식별자




II. 변수 variable

  • 담긴 값이 바뀔 수 있는 주머니
  • let 사용

1. x란 변수를 선언(주머니 만듦)만 한 뒤 값을 넣음

💡 브라우저 콘솔에서 줄바꿈: shift + enter

let x; console.log(x); x = 1; console.log(x);

img img

  • 💡 undefined: '아직 값이 정해지지 않았다' 라는


2. 변수 선언과 값 넣기를 동시에 가능 (초기화 - 일반적인 사용법)

let x = 1; console.log(x);

메모리상으로는 선언과 초기화를 따로 하는 것과 동일

  • undefined 할당 후 재할당


3. 다른 변수가 같은 값을 가질 때

let x = 1; let y = x; // x가 가진 값을 y에 할당 console.log(x, y);

img

⭐ 같은 값이 다른 데이터 영역에 저장되지 않음 메모리절약



4. x에 1을 넣은 뒤 값을 'Hello!'로 변경

let x = 1; let y = x; console.log('변경 전', x, y); x = 'Hello!'; console.log('변경 후', x, y);

img

⭐️ C 등의 언어와 달리, 메모리상 가리키는 위치가 변경

  • 기존 위치에 새 값을 넣는 것이 아님
  • 차지하는 자리가 다른 크기의(자료형이 다른) 데이터가 재할당될 수 있으므로

5. 이미 만들어진 주머니를 다시 만들(재선언) 수 없음

let x = 1; console.log('첫 선언', x); let x = 2; console.log('다시 선언', x);
  • var는 이것이 가능했었음
  • 브라우저의 콘솔에서는 독립적으로 실행하면 가능 - 특수케이스

6. 선언하기 전 코드를 사용할 수는 없음

console.log(xyz); let xyz = 1;



III. 상수 constant

  • 담긴 값이 바뀔 수 없는 주머니
  • const 사용
  • 흔히 대문자로 명명 - 여러 곳에서 사용될 공통 값인 경우

1. 상수를 선언과 동시에 초기화

const PI = 3.14; console.log('원주율:', PI);

2. 선언하기만 하는 것 불가

const PI; PI = 3.14;

3. 상수는 값의 변경 불가

const PI = 3.14; PI = 3.14159
  • ⭐ 값이 바뀔 일이 없는 데이터는 상수로 선언할 것


💡 여러 변수와 상수 동시에 선언

// let a = 1; // let b = 2; // ... let a = 1, b = 2, c = 3; const X = 4, Y = 5, Z = 6; console.log(a, b, c); console.log(X, Y, Z);

😅 브라우저 콘솔로 실습시 특이사항

let x = 1; let x = 2; let x = 1; let x = 2; const x = 3;
  • 독립된 시행시 같은 이름의 변수나 상수를 재선언 가능
  • 단 변수를 상수로, 상수를 변수로 재선언하면 오류 - 새로고침 필요
  • 강의 진행 편의상 const가 적합함에도 let을 사용하는 부분들 있을 것




IV. 식별자 상수와 변수 등의 이름

1. 식별자 identifier 명명 규칙

  • 영문, 한글 및 유니코드(대부분의 문자 표현) 글자, 숫자 사용 가능
  • 특수문자는 $ 또는 _
  • 숫자로 시작할 수 없음
  • 공백(스페이스) 사용 불가
  • 👉 식별자 규칙 MDN 문서


2. 예약어 reserved words

변수명이나 상수명으로 쓸 수 없는 것들

const let = 1; let typeof = 2;

👉 MDN 문서 보기



3. 💡 한글 변수/상수명

const 이름 = '홍길동'; let 나이 = 20; console.log(이름, 나이);
  • 예전에는 금기시(?)
  • 오늘날에는 종종 사용하는 회사 있음




🤖 컴퓨터가 일하는 방식

img

CPU: 일하는 사람

  • 컴퓨터의 뇌 - 작업을 진행하는 주체

보조기억장치 (SSD, HDD): 서랍

  • 상대적으로 저장공간은 넓고 접근속도는 느림
  • 소프트웨어(코드)가 저장되는 곳

메모리 (RAM): 책상 위 공간

  • 상대적으로 저장공간은 좁고 접근속도는 빠름
  • 사람(CPU)이 서랍(보조기억장치)에 든 데이터를 꺼내 올려두고 작업을 하는 공간
  • 변수와 상수를 비롯한 데이터들이 이곳에 만들어지고 사용됨
  • ⭐메모리를 효율적으로 사용하기 위한 지식과 노력 필요

🤔얄코에게 질문하기질문은 반.드.시 이리로 보내주세요! ( 강의사이트 질문기능 ✖ )

강의에서 이해가 안 되거나 실습상 문제가 있는 부분,
설명이 잘못되었거나 미흡한 부분을 메일로 알려주세요!

답변드린 뒤 필요할 경우 본 페이지에
관련 내용을 추가/수정하도록 하겠습니다.

이메일 주소
yalco@yalco.kr
메일 제목 (반드시 아래 제목을 붙여넣어주세요!)
[질문] 제대로 파는 자바스크립트 (무료 파트) 1-3

🛑질문 전 필독!!

  • 구글링을 먼저 해 주세요. 들어오는 질문의 절반 이상은 구글에 검색해 보면 1분 이내로 답을 찾을 수 있는 내용들입니다.
  • 오류 메시지가 있을 경우 이를 구글에 복붙해서 검색해보면 대부분 짧은 시간 내 해결방법을 찾을 수 있습니다.
  • 강의 페이지에 추가사항 등 놓친 부분이 없는지 확인해주세요. 자주 들어오는 질문은 페이지에 추가사항으로 업데이트됩니다.
  • "유료파트의 강의페이지는 어디 있나요?" - 각 영상의 시작부분 검은 화면마다 해당 챕터의 강의페이지 링크가 있습니다.
  • 질문을 보내주실 때는 문제가 어떻게 발생했고 어떤 상황인지 등을 구체적으로 적어주세요. 스크린샷을 첨부해주시면 더욱 좋습니다.
🌏 Why not change the world?