
문서 객체 모델
문서에 대한 모든 내용을 담고있는 객체 Document 관련 내용을 객체화 하여 관리한다.
자바스크립트로는 객체화 된 모델을 이용하여 동적 HTML을 제어할 수 있다.
elements(요소) 에 대한 접근을 통해 HTML의 내용을 변경 할 수 있다.
CSS (style) 의 내용 또한 변경 가능하다.
그중 element를 통해 html에 접근하는 연습을 해보았다.
<button id="btn">버튼</button>
<script type="text/javascript">
let btn = document.getElementById("btn")
btn.addEventListener("click",clickBtn)
function clickBtn(){
console.log("hello world!")
}
</script>
document.getElementById를 사용하여 html의 id가 "btn"인 엘리먼트를 가져와 선언하고 addEventListener을 사용하여 click할 때 마다 hellow world!가 출력되도록 설정하였다.document.querySelector("#btn")을 사용하여 가져온 엘리먼트들의 속성은 object 이다..addEventListener는 앞에 html 관련 object일때만 사용 가능하다.
st.addEventListener(이벤트명,실행할 함수명(call back 내용))
함수를 정의하고 함수를 호출하려고 할 때 뒤에 ()를 쓰지않으면 함수를 정의한 코드만 나온다. 함수명 뒤에 ()를 써야지만 함수가 실행되기 때문에 잠깐 함수를 담고 싶을때 많이 사용하는 방법이다.
위와 같은 상황에서도 callback 함수를 사용하여 함수를 실행하지 않고 있다가 btn을 click 할 시에 함수가 실행되도록 설정한 것이다.
위같은 방법 말고도 화살표 함수를 사용하여 보다 쉽게 코드를 작성할 수 있다.
<button id="btn">버튼</button>
let btn = document.getElementById("btn")
btn.addEventListener("click",()=>console.log("hello world!"))
화살표 함수를 사용하여 보다 간단하게 만들 수 있다.
<button id="btn">버튼</button>
let btn = document.querySelector("#btn")
btn.addEventListener("click",()=>console.log("hello world!"))
getElementById 말고 querySelector를 사용하여도 똑같이 btn을 불러 올 수 있다.