FE/JS
JavaScript: var, let, const
2025.05.13
자바스크립트에서 변수를 선언하는 방법은 세 가지가 있다: var, let, const 이번 글에서는 var, let, const의스코프(Scope), 중복 선언, 호이스팅(Hoisting), 전역 객체(window) 네 가지 관점에서 비교해본다.1. 스코프: 변수가 살아 있는 공간var: 함수 스코프var는 오직 함수 단위로만 스코프를 나눈다. {} 블록은 무시한다.if (true) { var x = 1;}console.log(x); // 1 (밖에서도 접근됨)함수 안에서 선언하면 그 함수 안에서만 유효하지만, 함수 바깥에서 {} 안에 선언하면 밖에서도 살아 있다. let, const: 블록 스코프let과 const는 {} 블록 안에서만 살아 있다. 가장 큰 차이점이자 장점이다.if (true) { ..
FE/JS
왜 JavaScript의 명령어 처리 동작 원리를 이해해야 할까?
2024.12.23
JavaScript를 쓰다 보면, 코드 실행 순서가 예상과 다르게 흘러가는 경우가 자주 있다.특히 setTimeout, Promise, fetch 같은 비동기 작업을 사용할 때 더욱 그렇다. 예를 들어 아래 코드를 보자.console.log('Start');setTimeout(() => { console.log('Task');}, 0);Promise.resolve().then(() => { console.log('Microtask');});requestAnimationFrame(() => { console.log('Animation Frame');});console.log('End');코드를 읽는 순서대로 실행될 것 같지만 실제 출력은 다음과 같다.StartEnd MicrotaskAnimation ..