ReferenceError: “x”가 정의되지 않았습니다.

“X”라는 존재하지 않는 변수를 참조하는 동안 오류가 발생했습니다.

즉, 어딘가에 선언되지 않은 변수를 사용하고 있다는 뜻입니다.

빨리 찾아서 해결하세요.

예 1

hello.substr(0,2); // Uncaught ReferenceError: hello is not defined

이 시점에서 변수 hello가 선언되지 않았기 때문에 메서드를 실행할 수 없습니다.

var hello = "hello";
hello.substr(0,2);
console.log("hello는 ", hello.substr(0,2)); // hello는 he

위와 같이 먼저 인사를 해야 합니다.

예 2

또한 이 오류는 함수 내부에 정의된 변수를 함수 외부에서 사용하려고 할 때도 발생합니다.

function numbers () {
  var num1 = 2,
      num2 = 3;
  return num1 + num2;
}

console.log(num1); // ReferenceError: num1 is not defined

함수 내에서 정의된 변수는 함수 내에서만 사용할 수 있습니다.

그러나 아래와 같이 전역 함수에서 전역 변수를 사용할 수 있습니다.

var num1 = 2,
    num2 = 3;

function numbers () {
  return num1 + num2;
}

console.log(num1); // 2

(* 함수 사용을 위해 할당된 메모리

해제되어 그 부분의 메모리를 참조할 수 없기 때문에 전역 변수가 아니면 사용할 수 없습니다.)