Thief of Wealth
Published 2021. 4. 3. 01:14
Window객체와 BOM 개발/FrontEnd Interview

- 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
profile on loading

Loading...