
사용자의 행위 혹은 코드로 인해 브라우저에 어떤 행위가 발생했을 때 브라우저에서 이벤트를 발생시키고 이벤트 타이밍에 어떤 행위에 대한 함수를 등록할 수 있음
→ HTML 요소에 이벤트가 발생했을 때 해당 HTML 요소를 DOM으로 가져와 해당 이벤트에 함수를 등록
<button type="button" onclick="clickEvent()"></button>window.onload는 브라우저가 HTML 문서를 다 읽었을 때 호출될 함수를 저장한 propertywindow.onload = function() {
let button = document.getElementById("button");
button.onclick = func;
}target.addEventListener(type, listner(e), useCapture);특정 타입의 이벤트와 관련이 있는 객체로 이벤트의 타입을 나타내는 type property와 이벤트 대상을 나타내는 target property를 가짐
브라우저가 이벤트 리스너를 실행시킬 대상 요소를 결정하는 과정
window 객체까지 이어짐e.preventDefault로 기본 이벤트 중지stopPropagation으로 이벤트 전파 중단click, mousedown 등 이벤트가 중복으로 일어나는 경우 어떻게 처리할 수 있을까
isClicked와 같은 flag를 사용해 이미 클릭된 경우를 제어document.getElementById('button').onclick = null
document.getElementById('button').setAttribute('disabled', 'true')
Document Object Model은 HTML, XML 문서의 프로그래밍 인터페이스
브라우저가 HTML 구조에 따라 DOM을 트리 구조로 생성
nodeJavascript에서는 node를 가져와서 제어할 수 있음
querySelector : 태그, 클래스, id에 따라서 node를 가져옴querySelectorAll : 태그, 클래스, id에 따라 NodeList를 가져옴getElementById : id로 node를 가져옴getElementByClassName : 클래스 명으로 node를 가져옴querySelector는 index번호로만 접근하고 getElementBy는 name, id, index로 접근하기 때문에 querySelector가 비교적 느림
DOM 조작
createElement : 새로운 Node 생성setAttribute : Node에 속성 추가appendChild : Node를 자식 요소로 추가removeChild : Node의 자식 요소 삭제정보 가져오기
tagName : 태그명classList : 어떤 클래스를 가지는지DOM 탐색
childNodes : 자식 요소 탐색parentElement : 부모 요소 탐색참고자료
https://developer.mozilla.org/en-US/docs/Web/Events
http://www.tcpschool.com/javascript/js_event_eventListenerCall
https://ko.javascript.info/dom-nodes