JS를 쓰면서 처음에는 헷갈리지만 한번 이해하두면 까먹을일 없을거 같습니다.
가장 큰 차이 -> 함수 스코프
함수 스코프
-> 함수 내에서 선언된 변수 또는 상수에 접근할 수 있는 범위
블록 스코프
-> 블록 내에서 선언된 변수 또는 상수에 접근할 수 있는 범위
// 함수 스코프
function sayHello() {
var name = "John"; // 함수 스코프 변수
console.log(name); // "John"
}
console.log(name); // ReferenceError: name is not defined
sayHello();
// 블록 스코프
if (true) {
let age = 20; // 블록 스코프 변수
console.log(age); // 20
}
console.log(age); // ReferenceError: age is not defined
위를 예시라고 생각 하면 될 거 같음
정리 : 함수 스코프는 함수 내부에서만 유효, 블록 스코프는 블록 내에서만 유효
따라서.
만약 실제 사용 할때는