1주차_김현중_회고록_part 2 - hyeone999/Docs-JS_deepDive_Study GitHub Wiki
이번 주는 자바스크립트의 변수 선언 키워드인 let
, const
와 블록 레벨 스코프의 개념, 그리고 자바스크립트의 핵심 자료구조 중 하나인 배열(Array) 에 대해 학습했습니다.
-
var
,let
,const
의 차이점 비교-
var
: 함수 레벨 스코프 + 호이스팅 시 초기화(undefined
) -
let
,const
: 블록 레벨 스코프 + TDZ(Temporal Dead Zone) 존재
-
-
const
는 재할당이 불가능하지만 객체나 배열의 내부 값 변경은 가능함 - 블록 레벨 스코프란?
{}
내부에서만 유효한 변수의 유효 범위 - 중첩 블록에서 변수의 shadowing(가리기) 현상 발생 주의
{
let x = 10;
{
let x = 20;
console.log(x); // 20
}
console.log(x); // 10
}
- 자바스크립트 배열은 인덱스 기반의 객체이다
- 다양한 타입의 값을 혼합하여 저장 가능
- 길이는 length 속성으로 확인하며, 변경 가능
- 배열도 참조 타입 → 얕은 복사, 깊은 복사 주의
- 고차 함수 (map, filter, reduce)를 통해 선언적이고 간결한 데이터 처리 가능
- Array.isArray()를 통해 배열 여부를 정확히 판별해야 함
const arr = [1, "hello", true];
console.log(typeof arr); // "object"
console.log(Array.isArray(arr)); // true
- let, const는 생각보다 훨씬 더 엄격하게 작동하며, 실제로 코드 안정성을 높이는 데 큰 역할을 한다는 점을 체감함
- 배열은 단순히 나열된 데이터가 아니라, 반복 처리나 조건 분기 등을 함수형 패턴으로 처리하는 데 매우 유용한 도구라는 걸 다시금 느꼈음
- var은 함수 레벨 스코프, let/const는 블록 레벨 스코프
- const는 재할당 불가지만 내부 객체/배열은 변경 가능
- 배열은 typeof로는 판별이 어렵고 Array.isArray()로 확인