-
[TIL]Day 17. addEventListener 에 대해IT 지식 2020. 9. 23. 19:30728x90
자바스크립트의 활용성이 커짐에 따라 웹에서는 다양한 이벤트를 발생시킬 수 있게 되었습니다. 이러한 이벤트의 발전은 웹 개발을 프론트엔드와 백엔드를 분화시키는데 큰 기여를 하게 되었습니다.
오늘은 자바스크립트의 기능 중 이벤트를 달 때 사용하는 함수인 addEventListener에 대해 알아보도록 하겠습니다.
1. addEventListener란?
addEventListener는 앞서 말씀드렸다시피 이벤트를 달때 사용하는 함수입니다. 이 단어를 직역하자면, '이벤트를 듣고 있는 함수를 더해주겠다.'는 의미가 되죠. addEventListener는 개발자가 정한 특정 이벤트를 주시하고 있다가 그 이벤트가 발생할 때 인자로 받은 함수를 실행시켜줍니다.
예시를 들어보면 다음과 같습니다.
요소.addEventListener(이벤트종류, function() { //이벤트가 일어났을 때 실행할 내용 });
특정 요소에 addEventListener 함수를 붙이고(호출하고), 인자로 이벤트 종류와, 이벤트가 발생했을 때 실행할 함수를 전달합니다. 이렇게 인자로 전달된 함수를 콜백 함수라고 부릅니다.
2. 이벤트 종류
공식 문서에 나와있는 이벤트의 종류를 조금만 알아보도록 하겠습니다. 이벤트의 종류는 엄청나게 많지만, 그 중 자주 쓰이는 이벤트의 종류는 많지 않습니다. 마치 html의 태그 종류가 많지만, 자주 쓰이는 태그는 한정되어 있는 것처럼 말이죠.
addEventListener에 위에 해당하는 이벤트를 인자로 받아 개발자가 원하는 함수를 작동시키게 되는 것입니다.
3. 예시
간단한 예시를 통해 addEventListener에 대해 좀 더 익숙해져보도록 하겠습니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>repl.it</title> <link href="index.css" rel="stylesheet" type="text/css" /> </head> <body> <div class="login-container"> <input type="password" id="password" placeholder="비밀번호" /> <input type="password" id="re-password" placeholder="비밀번호 확인" /> <button class="login-btn">로그인</button> <p class="alert"></p> <p>key code: <span id="code"></span></p> </div> <script src="index.js"></script> </body> </html>
* { box-sizing: border-box; } .login-container { width: 200px; margin: 20px auto; } .login-container input { width: 100%; height: 30px; margin-bottom: 5px; padding-left: 10px; } .login-btn { width: 100%; height: 30px; text-align: center; font-size: 14px; background-color: #659672; color: white; } .login-btn:hover { cursor: pointer; opacity: 0.85; }
const thisIsRepassword = document.getElementById('re-password'); const thisIsAlert = document.getElementsByClassName('alert')[0]; thisIsRepassword.addEventListener('keyup', function() { const password = document.getElementById('password').value; const rePassword = document.getElementById('re-password').value; if (password !== rePassword) { thisIsAlert.innerHTML = "비밀번호가 일치하지 않습니다" } else { thisIsAlert.innerHTML = "" } });
위의 코드를 실행시키면 초기 화면은 다음과 같습니다.
그리고 자바스크립트에 코딩되어 있는 것처럼 비밀번호와 비밀번호 확인 란에 password를 입력하면 두 요소의 value를 확인한 후 비교하여 값이 다르다면 아래의 첫 번째 사진이, 같다면 두 번째 사진과 같은 화면이 나오게 됩니다.
4. 마치며
오늘 예시로 들어드린 사례는 앞으로 우리가 마주쳐야할 이벤트의 시작에 불과합니다. 어쩌면 프론트엔드 개발자로서의 첫발을 내딛은 수준이라고도 할 수 있겠네요. 아직은 익숙하지 않아 다루는 것이 서툴지 몰라도 자주 연습하다보면 몰라보게 성장한 자신을 발견하게 되실 수도 있습니다.
결국 개발을 잘하는 왕도는 수많은 연습이라고 할 수밖에 없겠네요
728x90'IT 지식' 카테고리의 다른 글
[TIL]Day 19. 문자 인코딩이란? (0) 2020.09.29 [TIL]Day 18. 라이브러리? 프레임 워크? (0) 2020.09.28 [TIL]Day 16. HTTP와 DOM의 개념 (0) 2020.09.22 [TIL]Day 15. JS 정리(2) (0) 2020.09.21 [TIL]Day 14. js 정리(1) (0) 2020.09.16