- Window 객체란 무엇인가?
: 브라우저의 요소들과 자바스크립트 엔진, 모든 변수를 담고 있는 객체이다.
브라우저를 보면, 탭들도 있고, 주소창도 있고, 즐겨찾기, 툴바도 있고,
그 밑에 웹사이트가 표시된다.
여기서 브라우저 전체를 담당하는게 window 객체이고, 웹사이트만 담당하는게 document 객체이다.
window 객체 아래에, screen, location, history, document 객체가 존재한다.
근데 왜, window.을 하지 않고도 history, document 객체를 사용할 수 있는 것일까?
window는 모든 객체의 조상이라서, 전역객체라고 불린ㄷ.
모든 객체를 다 포함하고 있기 때문에, window는 그냥 생략가능하다.
window아래에 String, Boolean, Object, Number, Function, Array 같은 자료형들도 존재한다.
심지어, 전역 변수들 (함수 안에서 선언한 변수 제외)도 모두 window 객체 안에 등록된다.
- BOM 객체들
: 자바스크립트를 이용하여 브라우저의 정보에 접근하거나 브라우저의 여러 기능들 제어할 수 있는 브라우저 객체 모델 (Browser Object Model)이다.
1) navigator
: 브라우저나, OS 대한 정보나, navigator.useAgent 정보를 바탕으로 고객에 대한 정보를 분석할 수 있다.
만약 브라우저에 따라 다른 동작을 해야하거나, IE같은 구형 브라우저인지 체크를 할 때 navigator 객체를 쓰게 된다.
또한, GPS나 핸드폰의 battery를 체크하는 기능도 있어서, 모바일 환경에서도 유용하게 사용할 수 있다.
그 외에도..
2) screen
3) location
4) history
등이 있다.
DOM으로는 html 문서상의 요소들을 자바스크립트로 접근하여 쉽게 조작하고 정보를 가저올 수 있다.
BOM은 웹브라우저에서 제공되는 조작 방식이 어떤 것이 있는지에 대한 모델이다.
공통점이 있다면 BOM이든 DOM이든 자바스크립트가 웹페이지를 쉽게 조작하기 위해 제공되는 조작가능한 객체 모델이라는 것이다.
'개발 > FrontEnd Interview' 카테고리의 다른 글
전역/함수/메소드에서의 this에 관하여 (0) | 2021.04.03 |
---|---|
undefined, null, NaN (0) | 2021.04.03 |
실행 컨텍스트란? (2) | 2021.04.02 |
전역 변수를 지양해야하는 이유 (0) | 2021.03.29 |
lexical scope 란? (0) | 2021.03.29 |