본문 바로가기
error 해결

[error] ReferenceError: document is not defined

by 뿌비 2022. 4. 19.
728x90

오류가 나게 된 상황 

// 코드 실행기에서 실행 했던 코드
function add(x,y){
    console.log(typeof arguments[1]);
	return x + y;
}
document.write(add(14,3,25,1,2,"hello","hi"));

오류의 원인 (**오류 해결은 했지만 잘못 이해하거나 해석이 되었을 수 있습니다.  고쳐야 하는 부분은  댓글 남겨주세요! ** )

1.  document.write(add(14,3,25,1,2,"hello","hi")); 이 부분에서 오류가 나는 거였고 조금 찾아보니 이유를 알 수 있었다. 

2. 자바스크립트 는 처음 언어가 만들어질 때 브라우저 안에 존재했기 때문에 자바스크립트는 자신을 둘러싼 브라우저 환경 안에서 코드가 해석되고 실행된다.

(window, document 같은 이름을 가진 객체가 브라우저 환경을 의미)

3. 코드 실행기에서는 오류를 내던 코드가 비주얼 스튜디오에서 실행해보니 잘 되었다. 코드 실행기도 브라우저라 생각했었는데 아무래도 코드를 실행하던 곳이 브라우저가 아니라 로컬 환경(?) 이였던 거 같다..... 

 


해결 방법

  • 코드 실행기가 아닌 비주얼 스튜디오에서 코드를 실행 하니까 에러가 안 뜨고 정상적으로 작동했다. 

오류를 해결하면서 느낀 점  & 배운 점 

  • document라는 객체가 무엇을 위해 존재하는지, document 객체에 대해서 조금 더 공부해야겠다고 느꼈고, 로컬 환경에서는 직접 만들어 넣지 않는 이상 document도 없고 window 객체도 없다는 것과  자바스크립트를 브라우저 바깥으로 끄집어내서 c나 c++, java 같은 범용 언어처럼 사용하는 게 nodejs라는 것을 배우게 되었다.

 

728x90