이벤트는 프로그램이 감지하고 대응할 수 있는 사건이다. [[웹사이트]]에서는 클릭과 입력과 스크롤과 키보드 누름 같은 사건이 일어난다. [[자바스크립트]]의 [[이벤트 리스너]]는 정한 종류의 사건이 발생했을 때 실행할 동작을 연결한다. 리스너를 등록했다고 그 동작이 곧바로 실행되는 것은 아니다. 방문자가 버튼을 누르지 않으면 연결한 함수가 호출되지 않을 수도 있다. [[새로운 질서]]는 이런 기다림도 [[상호작용]]의 형식에 포함된다고 설명한다. 어떤 이벤트에 반응할지는 필요한 동작에 맞춰 선택해야 한다. 양식의 제출을 다룰 때는 버튼 클릭만 듣는 것보다 양식의 제출 사건을 다루는 것이 마우스와 키보드의 사용을 함께 고려하는 방법이 된다. 동작을 실행하는 요소에는 실제 버튼을 사용해 역할과 기본 조작 방식을 드러낸다. 단순히 내용을 펼치고 접는 일은 HTML의 기본 요소만으로 가능한지도 먼저 살펴볼 수 있다. 감지할 수 있는 사건이 많다는 이유로 모든 입력과 움직임에 반응할 필요는 없다. 필요한 사건 하나를 고르고 그 뒤의 변화와 [[피드백]]을 분명히 하는 것이 작은 기능의 출발점이다. ## 기타 등등 - 이벤트 리스너에 `once: true`를 주면 한 번 실행한 뒤 스스로 등록을 해제한다. 한 번만 열리는 작은 장치에 별도의 횟수 변수가 꼭 필요한 것은 아니다. [출처](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) - 여러 리스너에 같은 `AbortSignal`을 연결한 뒤 한 번의 취소로 함께 해제할 수도 있다. 반응을 추가하는 일만큼 반응을 그만두는 경로도 문법 안에 있다. [출처](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) #개념 #프로그래밍 #HTML