혼자 고민해보기_ 개발/TIL (Today I Learned)
20230601(목)_ 혼자 공부하는 자바스크립트 공부
nuri-story
2023. 6. 1. 21:20
금일 달성 항목
1) 혼자 공부하는 자바스크립트 진행 (328 Page 까지 진행)
2) 알고리즘 3차 특강 참여
문제 해결 과정 1
[문제]
1) 이벤트 연결 버튼을 누르면 활성화되어 클릭 횟수를 선택 시 카운팅
2) 이벤트 해제 버튼을 누르면 비활성화되어 클릭 횟수 선택 시 카운팅 고정
3) 이벤트 연결 상태에 따라 아래에 연결 or 해제 표시
[시도 및 해결]
스스로 해결할 수 없어 강의자료를 보며 하나씩 채워나갔습니다.
1) 형태의 뼈대를 만듭니다.
<script>
const header = document.createElement("h1");
header.innerText = `클릭 횟수 : 0`;
const p = document.createElement("p");
p.innerText = `이벤트 연결 상태 : 해제`;
const connectButton = document.createElement("button");
connectButton.innerText = "이벤트 연결 버튼";
const disconnectButton = document.createElement("button");
disconnectButton.innerText = "이벤트 해제 버튼";
document.body.appendChild(header);
document.body.appendChild(connectButton);
document.body.appendChild(disconnectButton);
document.body.appendChild(p);
2) 이벤트 연결 버튼에 addEventListener이라는 이벤트를 추가하였습니다. 이 이벤트는 별도의 변수로 만들어야 해서 맨 위에 추가하였습니다. innerText를 사용하여 이벤트 연결 상태를 문자로 출력하였습니다.
let counter = 0
const listener = () => {
header.innerText = `클릭 횟수 : ${++counter}`;
}
const connectButton = document.createElement("button");
connectButton.innerText = "이벤트 연결 버튼";
connectButton.addEventListener('click', () => {
header.addEventListener('click',listener )
p.innerText = `이벤트 연결 상태 : 연결`;
})
3) removeEventListerner 이벤트를 추가하여 클릭 이벤트를 제거하였습니다.
innerText를 사용하여 이벤트 연결 상태를 문자로 출력하였습니다.
const disconnectButton = document.createElement("button");
disconnectButton.innerText = "이벤트 해제 버튼";
disconnectButton.addEventListener('click', () => {
header.removeEventListener('click', listener)
p.innerText = `이벤트 연결 상태 : 해제`;
})
[알게된 점]
하나하나 분석하면서 보다보니 코드의 내용이 길어도 이해가 갑니다. 처음 긴 코드를 맞닥뜨릴때는 너무 막막해했는데 말이죠.. ㅎㅎ
그리고 다양한 이벤트를 공부해서 활용하면 더 풍성한 사이트를 만들 수 있을 것이라 생각했습니다.
특강
알고리즘 특강 - 김창민 튜터님
- peek, push, pop 함수 구현
- 링크드리스트 기반 큐의 enqueue 함수 구현하기
- 버블정렬, 선택 정렬, 삽입 정렬 함수 구현