1. 이벤트 핸들러
이벤트 핸들러란 특정 요소에서 발생하는 이벤트를 처리하기 위해 사용하는 함수이다. 이벤트 핸들러가 연결된 특정 요소에서 지정된 타입의 이벤트가 발생하면 브라우저는 연결된 이벤트 핸들러를 실행한다.
1-1. HTML
<button onclick="clickBtn()">click me</button>
function clickBtn() {
alert("Button Clicked !");
}
1-2. DOM
btn.onclick = () => {
console.log("1");
}
1-3. EventListener
btn.addEventListener("click", (event) => {
console.log("1st Clicked")
})
1-4. DOM과 EventListener의 차이
① 콜백 개수
DOM 이벤트 핸들러는 여러 개의 콜백함수를 지정할 수 없다.
여러 개를 지정할 경우 마지막에 지정된 함수가 실행된다.
// onclick은 바인딩 시 덮어쓰기됨
btn.onclick = () => {
console.log("1");
}
btn.onclick = () => {
console.log("2");
}
btn.onclick = () => {
console.log("3");
}
반대로 이벤트리스너는 여러 개의 콜백함수를 지정할 수 있다.
// addEventListener는 여러 개 바인딩 가능
btn.addEventListener("click", (event) => {
console.log("1st Clicked")
})
btn.addEventListener("click", (event) => {
console.log("2nd Clicked")
})
btn.addEventListener("click", (event) => {
console.log("3rd Clicked")
})
② 호환성
DOM 이벤트 핸들러는 모든 브라우저에서 호환된다. 하지만 이벤트 리스너는 인터넷 익스플로러 IE 8버전 이하에서는 작동하지 않는다.
③ 캡처링 & 버블링
이벤트리스너를 사용한다면 이벤트 캡처링과 버블링을 제어할 수 있다. 이벤트리스너의 세번째 인자값으로 boolean 타입을 작성할 수 있다. 기본값은 False이고 true를 입력한다면 버블링 대신 캡처링을 사용할 수 있다.
https://welcometeaching-yes.tistory.com/62
[JS EventListener] 버블링 & 캡처링 - 프엔부캠 심화학습
1. 버블링버블링은 이벤트 실행 방향이 이벤트 감지 요소에서 상위 요소로 이동한다. click const allElement = document.querySelectorAll('*');// 버블링for (let el of allElement) { el.addEventListener('click', (e) => console.lo
welcometeaching-yes.tistory.com
2. 함수
2-1. 기명함수
이름이 있는 함수인 기명함수는 호출위치가 함수 선언의 앞, 뒤 어디든 상관없다.
// 기명함수의 호출위치는 상관없음
plus();
// 이름이 있는 함수 - 기명함수
function plus() {
console.log(1+1);
}
2-2. 익명함수
이름이 없는 함수인 익명함수는 무조건 함수 선언의 뒤여야 한다.
// 이름이 없는 함수 - 익명함수
const minus = function() {
console.log(1-1)
}
// 익명함수는 함수 표현 이후에 호출
minus();
'Today I Learned > JS' 카테고리의 다른 글
[JS] isotope.js - 에이블런 프론트엔드부트캠프 16일차 (0) | 2024.08.06 |
---|---|
[JS] 버블링 & 캡처링 - 프엔부캠 심화학습 (0) | 2024.07.31 |
[JS] Tab Menu - 에이블런 프론트엔드부트캠프 12일차 (0) | 2024.07.30 |
[JS] JS 3 - 에이블런 프론트엔드부트캠프 12일차 (0) | 2024.07.30 |
[JS] JS 2 - 에이블런 프론트엔드부트캠프 10일차 (0) | 2024.07.26 |