1976s

이 블로그는 웹 개발, 프로그래밍, IT 활용법을 다루며, 실용적인 팁과 정보를 제공합니다.

# Side Menu
  • recentPost

  • popularPost

  • Archive

  • recentComment

공부/Javascript

자바스크립트 ReferenceError 정리

2023. 4. 12., 1976s

ReferenceError : 참조 오류

JavaScript ReferenceError 객체는 현재 범위에서 존재하지 않거나 초기화되지 않은 변수를 참조했을 때 발생하는 에러를 나타냅니다. ReferenceError - JavaScript | MDN 참조; 몇 가지 예를 들어 설명하겠습니다.

 

 

✔️ ReferenceError: 'x' is not defined

Uncaught ReferenceError: 'x' is not defined (V8-based & Firefox)
Uncaught ReferenceError: Can't find variable: 'x' (Safari)

존재하지 않는 변수를 참조하는 곳이 있습니다.

// 선언되지 않은 변수
console.log(num); // Uncaught ReferenceError: num is not defined
// 잘못된 스코프
(function () {
if(true) {
    let a = 1; // let 블록({}) 레벨 스코프
}
    console.log(a); // Uncaught ReferenceError: a is not defined 
})();

'a' 이 변수는 현재 scope에서 사용이 가능하도록 해야 합니다.

(function () {
if(true) {
    var a = 1; // var 함수 레벨 스코프
}
    console.log(a); // 1
})();

 

 

✔️ ReferenceError: Cannot access 'x' before initialization

Uncaught ReferenceError: Cannot access 'x' before initialization (V8-based)
Uncaught ReferenceError: can't access lexical declaration 'x' before initialization (Firefox)
Uncaught ReferenceError: Cannot access uninitialized variable. (safari)
(function () {
    let y = y + 65;
})();
// Uncaught ReferenceError: Cannot access 'y' before initialization

변수가 초기화되기 전에 액세스가 되었습니다.

(function () {
    let y = 0; 
    y = y + 65;
})(); // 65

 

 

✔️ReferenceError: assignment to undeclared variable 'x'

Uncaught ReferenceError: 'x' is not defined (V8-based)
Uncaught ReferenceError: assignment to undeclared variable 'x' (Firefox)
Uncaught ReferenceError: Can't find variable: 'x' (Safari)

엄격 모드(strict mode)에서만 발생하는 ReferenceError 경고.

(function () {
  "use strict";
  y = true;
})();

선언되지 않은 변수로 값은 할당되었습니다.

(function () {
  "use strict";
  let y = true;
})();

 


Browser 테스트

           
112.0 112.0 112.0 13.1 97.0 3.19

 

마치며

ReferenceError을 시작하려고 MDN문서를 보다가 몇 개 있지 않아 놀랐습니다. 2개의 Error을 묶어 포스팅하려고 했지만 사용하면서 더 발견되는 것을 추가하려니 이렇게 1개의 포스팅으로 구분하는 것이 좋겠다 싶네요. 

이상 ReferenceError의 정리한 포스팅입니다. 추후 발견되면 그때 추가 정리하겠습니다.

반응형

What are you looking for?

Tag List
Total categories: | Searchable posts: