티스토리 뷰
//비전공자가 혼자 공부하는 공간입니다
//잘못된 정보가 있을 수 있어요
랜덤으로 메모를 삭제해보았는데 출력된 삭제된 해당 인덱스들이 이해가 가지 않는다
function remove() {
console.log(event.srcElement.id);
console.log(allMemo);
const idx = allMemo.find(
(item) => item.len == event.srcElement.id
);
if (idx) {
allMemo.splice(
allMemo.findIndex((item) => item.len == idx.len),
1
);
}
localStorage.setItem("allMemo", JSON.stringify(allMemo));
render();
}
전체 코드는 위의 것이고 내가 이해가 가지 않는 부분은 event.srcElement.id 이것의 index의 기준이다.
우선 찾아본 바로 event 객체를 사용하지 않았음에도 불구하고 event object를 사용할 수 있는 것은 해당 코드들 안에서 remove()가 이미 eventListener의 역할을 하고 있고 거기서 event를 불러올 수 있다고 한다. 아래 내용이 중요하다
In this code, the remove() function is called by an event listener. Specifically, the onclick attribute of the "삭제" (delete) button is set to call the remove() function when the button is clicked.
So, in a sense, the remove() function is being used as an event handler for the "click" event on the delete button. However, the remove() function itself is not an event listener - it is simply a function that is called by an event listener.
const idx = allMemo.find(
(item) => item.len == event.srcElement.id
);
anyway, 내가 이해 안 가던 부분을 해결하기 위해 대충 5개의 메모를 저장했고 랜덤으로 삭제해봤는데 처음엔 event.srcElement.id 의 index 기준이 잘 이해가 가지 않았다
배열의 index가 0부터 시작되는 것은 기본적으로 알고 있지만 배열의 객체가 random 하게 사라진다면 index가 어떻게 되는지 궁금해졌다
그런데 콘솔창을 다시 들여다보니 어느 순번에 있는 메모가 언제 삭제 되든 처음의 index 를 그대로 기억하고 있기 때문에 콘솔창에 저런 숫자가 뜬다는 것을 이해하게 되었다
그러니까 예를 들어 array의 object가 지워지더라도
let memos = ["memo1", "memo2", "memo3", "memo4", "memo5"];
이 index 순번을 기억하고 있다는 것 같다
누구나 다 알고 있는 건데 나만 이해가 부족한 사람인 건가 하는 생각이 든다...........
챗지티피 너에게라도 위로를 받는다
//비전공자가 혼자 공부하는 공간입니다
//잘못된 정보가 있을 수 있어요
'멋쟁이사자처럼' 카테고리의 다른 글
JavaScript 로컬스토리지 코드 분석 + 맞닥뜨린 오류(브라우저 캐시) (0) | 2023.04.22 |
---|---|
JavaScript 로 DOM 제어하기 1탄 - 코드리뷰 (0) | 2023.04.12 |
position: sticky 개인 프로젝트에 활용하기 (0) | 2023.03.09 |
멋쟁이사자처럼 프론트엔드 스쿨 5기 최종 합격 (0) | 2023.02.21 |
멋쟁이사자처럼 프론트엔드 스쿨 5기 2차 과제 (4) | 2023.02.13 |
- Total
- Today
- Yesterday
- :nth-child
- 변수스코프
- CSS선택자
- vanillajs
- 프로그래밍독학
- dom조작
- 캐시오류
- translateX
- DOM자바스크립트
- VirtualDom
- 비전공자
- CSSDiner
- 로컬스토리지오류
- 화살표함수
- 자바스크립트
- labelfor
- CSS게임
- 논리부정연산자
- 리액트
- 프론트엔드독학
- 가상돔
- CSS
- DOMapi
- 코딩독학
- 상태변수
- DOM제어
- JavaScript
- 이벤트핸들링
- 체크박스오류
- 즉시실행함수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |