home강의 홈으로
Section 3. 제어문
Lesson 1. 블록문과 스코프
{ console.log('블록문'); }

블록문

👉 MDN 문서 보기

  • 0개 이상의 문statement들을 묶은 단위
  • 일반적으로, 이후 배울 제어문, 함수 등에 사용
  • 새로운 스코프 생성

스코프 scope

블록 안에 선언된 변수와 상수를 밖에서 사용 불가

{ const x = 'Hello'; let y = 'world!'; console.log(x, y); } console.log(x); console.log(y);

블록 안쪽에서는 바깥의 것 사용 가능

let x = 1; { let y = 2; console.log(x, y); } console.log(x); console.log(y);

img


블록 안쪽에 변수나 상수가 새로 선언되면 바깥 것을 덮어씀

const xx = 0; let yy = 'Hello!'; console.log(xx, yy); { const xx = 1; // 💡 블록 안에서는 바깥의 const 재선언 가능 let yy = '안녕하세요~'; console.log(xx, yy); // ⚠️ const, let을 빼먹으면 재선언이 아니라 바깥것의 값을(변수면) 바꿈! } console.log(xx, yy);

스코프 체인 scope chain

🥞 스택 stack

  • 후입선출 - 나중에 온 것이 먼저 나감

img

let a = 0; let b = 1; let c = 2; console.log('시점 1:', a, b, c); { let a = 'A'; let b = 'B' console.log('시점 2:', a, b, c); { let a = '가' console.log('시점 3:', a, b, c); } console.log('시점 4:', a, b, c); } console.log('시점 5:', a, b, c);
  • 블럭 안에 해당 변수/상수가 없으면 바깥쪽으로 찾아 나감 - 체이닝

⭐ 메모리에서의 관점

img

전역 global 변수/상수

  • 데이터 data 영역에 위치
  • 코드 어느 곳에서든 접근 가능 - 블록 내 동명의 변수나 상수에 덮어씌워지지 않는 이상
  • 프로그램 종료시 소멸
  • ⭐️ 전역변수 사용은 최소화할 것

지역 local 변수/상수

  • 스택 영역에 위치
  • 해당 블록 안에서만 접근 가능
  • 블록 실행 종료시 소멸
  • ⭐ 변수나 상수는 가능한 사용할 블록 내에서 선언 - 메모리 절약

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

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

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

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

🛑질문 전 필독!!

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