function scope() {
console.log(a); // ReferenceError
if (true) {
console.log(a); // undefined
const a = 123 // let도 동일
console.log(a); // 123
}
console.log(a); // ReferenceError
}
function scope() {
console.log(a); // undefined
if (true) {
console.log(a); // undefined
var a = 123 //
console.log(a); // 123
}
console.log(a); // 123
}
var
라는 키워드 보단 const
와 let
을 사용하는 것이 관리하기가 더 효과적입니다.먼저 Undefined 속성은 Undefined 원시 값을 나타내며, JavaScript의 원시 자료형 중 하나입니다.
Undefined는 기본적으로 값이 할당되지 않은 변수는 Undefined타입이며 , Undefined타입은 변수 자체 값 또한 Undefined입니다 .
쉽게 말해서 Undefined는 변수는 선언하였지만 초기화를 하지 않아서 그 값을 원시값인 Undefined으로 주는 것입니다. 그러므로 엄밀히 말해서 Undefined값이 나온다고 오류가 난 것은 아닙니다 .
초기화 되지 않은 것이죠 .
ReferenceError란 참조 에러입니다 .
ReferenceError란 객체는 존재하지 않는 변수를 참조했을 때 발생하는 에러를 나타냅니다.
객체를 생성하지 않았기에 참조할 값을 찾지 못했다고 이해하면 쉬울것 입니다.