console.log?! 객체.log?! 그럼 객체는 어디에 선언되어있나?!

w=j·2021년 5월 7일
0
post-custom-banner

갑자기 console.log가 궁금해졌다!!

  • 그 이유는 며칠전 켄님과 화상면담을 했는데 켄님께서 어떤분이 console.log에 관해 엄청난 설명을 하셨다고 한다.
    그러면서 저도 갑자기 console.log 는 분명히 console이라는 객체에서 log라는 프로퍼티를 접근하여 사용하는것인데
    내가 직접 코드로 console 이라는 객체를 선언하지도 않았고 보이지 않는다.
    그래서 이 console 이라는 객체의 선언된 위치를 알아보자 라는 생각으로 시작되었다...

1. https://developer.mozilla.org/ko/ 사이트에서 "console"를 검색을 해봤습니다.

2. console은 window.console?!

  • Window.console : console 이라는 객체도 Window 라는 객체 내부에 포함되어져 있다는것 알게 되었다.

3. window 객체?! 전역 객체?!

  • window 라는 객체는 전역 객체이다.
  • 전역객체란?!
    1.단 하나만 존재 한다.
    2.모든 객체의 조상이다.
    3.자바스크립트에는 전역 객체로 선언된 객체들이 항상 존재.
    4.전역 객체는 생략 가능.
  • Window 객체
  1. 웹브라우저 상에서 전역 객체를 window 객체라 한다.
  2. 자바스크립트는 코드를 실행하기전에 window 전역 객체를 생성한다.
  3. 자바스크립트에서 변수는 window 객체의 프로퍼티로 들어간다.
  4. 자바스크립트 선언된 객체의 조상이다.
  5. 전역객체이여서 생략 가능.
  6. 가장 최상위 객체이다.

var str = "kong"; // 전역 변수
str === window.str; // window 객체 프로퍼티와 전역변수 동일하다.
결과 : true;

var str = "woo";
console.log(str);
결과 : woo
window.console.log(str);
결과 : woo

  • window 전역객체는 생략 가능하므로 console.log 나 window.console.log 같다.

정리하자면,
console.log()는 window.console.log() 와 같다.
그러면 log() 함수는 console 이라는 객체의 메서드이고 console은 window 라는 전역객체의 프로퍼티이다.
window 객체는 자바스크립트에서 소스코드를 실행하기 전에 생성되며 브라우저의 전역객체이다.
node.js의 전역객체는 global 이라 한다.

  • 이상으로 문제있는 부분은 언제든지 지적부탁드립니다.

참조사이트 :
https://developer.mozilla.org/ko/docs/Glossary/Global_object
https://www.zerocho.com/category/JavaScript/post/573b321aa54b5e8427432946
https://poiemaweb.com/js-global-object

profile
ENJOY!! PROGRAMING!!
post-custom-banner

0개의 댓글