-
[Javascript] 블록문과 스코프Javascript 2024. 4. 1. 10:16
블록문과 스코프
블록문 : { }
스코프 : 블록안에 선언된 변수와 상수를 밖에서 사용불가
변수가 영향을 미치는 범위(접근 할 수 있는 범위) , 혹은 변수의 유효범위에 대한 규칙
식별자가 어디에서 선언 되었는지에 따른 자신의 유효한 범위를 갖는다.
- 함수가 생성되면 무조건 스코프가 생성된다
- 블록 안쪽에 변수나 상수가 새로 선언되면 바깥 것을 덮어 씀
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);- 스코프 체인 : 후입선출 나중에 온 것이 먼저 나감,
- 블럭 안에 해당 변수/상수가 없으면 바깥쪽으로 찾아 나감 - 체이닝
전역 global 변수/상수
- 데이터 data 영역에 위치
- 코드 어느 곳에서든 접근 가능 - 블록 내 동명의 변수나 상수에 덮어씌워지지 않는 이상
- 프로그램 종료시 소멸
- 전역변수 사용은 최소화할 것
- 어디서든 참조 할 수 있는 전역 스코프를 갖는 변수
지역 local 변수/상수
- 스택 영역에 위치
- 해당 블록 안에서만 접근 가능
- 블록 실행 종료시 소멸
- 변수나 상수는 가능한 사용할 블록 내에서 선언 - 메모리 절약
- 함수 자신과 하위 함수에서만 참조 가능
- 함수 내에서 선언된 매개변수와 변수는 함수 외부에서는 유효하지 않음
- 지역변수는 지역스코프를 갖는 변수
if / else
function evalNum () { const x = 21; if (x % 2) { console.log('홀수입니다.'); return; } if (x % 4) { console.log('짝수입니다.'); return; } console.log('4의 배수입니다.'); } evalNum(); console.log('블록문 바깥');switch
// 💡 참고: 객체를 사용한 방법 const direction = 'north' const directionKor = { north: '북', south: '남', east: '동', west: '서' }[direction] ?? '무효' console.log(directionKor);for 루프 : 괄호 안의 3개의 식에 따른 반복수행
for(초기값; 종료여부; 중감값)
for(let i = 0; i<10; i++){ console.log(i); }- 변수의 선언 및 할당
- 종료조건. 부재 시 항상 참
- 참일 시 블록 안의 코드 이후 실행문
객체와 배열의 for문
- 객체: for (키 이름 in 객체명) - 객체의 키들을 순서대로 반환
const lunch = { name: '라면', taste: '매운맛', kilocalories: 500, cold: false } for (const key in lunch) { // 💡 변할 것이 아니므로 const 사용 console.log(key, ':', lunch[key]) } for ... of문의 장점 //반복 가능한 객체(Array, Map, Set, String, TypedArray, arguments 객체 등 포함)에 대해 사용 const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // 변수(i)를 사용하므로 위험요소 존재 for (let i = 0; i < numbers.length; i++) { // 이곳에 i를 변경하는 코드가 들어간다면... console.log(numbers[i]); } // 변수를 사용하지 않음으로 보다 안전 for (const num of numbers) { console.log(num); }- continue : 한루프를 건너뜀
- break ; 블록을 종료하고 빠져나옴
for...in 문과 for...of 문의 차이점

출처 : 코딩에브리바디
while과 do while
- while - 조건이 참인 동안 반복수행
무한루프 : break문으로 무한반복 탈출 가능
- do while - 일단 수행하고 조건을 평가
'Javascript' 카테고리의 다른 글
[Javascript] 객체 (0) 2024.04.05 [Javascript] Object, Number, String, Array, Json ,Math, Date 객체 (1) 2024.04.04 [Javascript] 함수 (0) 2024.04.04 [Javascript] 자바스크립트의 기본적인 사용 (0) 2024.03.27 [Javascript] 배열 추가 및 제거 (0) 2024.03.26