[TIL] DOM에 대해 새로알게된 내용

한호수 (The Lake)·2022년 10월 14일
0

DOM

DOM 이란?

DOM 은 HTML 문서의 내용을 트리형태로 구조화하여 웹페이지와 프로그래밍 언어를 연결시켜주는 역할을 함. 이때 각각의 요소와 속성, 콘텐츠를 표현하는 단위를 '노드(node)'라고 함

새로알게된 내용들

  • DOM 트리에서 주석과 개행문자도 Text Node임으로 형재node를 찾을때는 고려해야한다.

  • addEventListener에서 callback 함수로 event 인자값을 넘겨주는것은 알고 있었지만 함수 파라미터에서 생략해도 callback 함수 내부에서 변수명 event로 호출이 가능한줄은 처음알았다.

li.addEventListener("click", () => console.log(event)) // event가 출력된다.
  • textContents, innerText, innerHTML 프로퍼티를 수정할때 보안과 성능을 고려해서 사용하는것이 좋다.
속성명특징
textContents1. <script><style> 요소를 포함한 모든 요소의 내용을 가져온다.
2. 노드의 모든 요소를 반환한다.
3. 값이 HTML로 구문 분석되지 않기 때문에 성능이 더 좋다.
innerText1. "사람이 읽을 수 있는" 요소만 표시합니다.
2. innerText는 스타일을 인식하고 "숨겨진" 요소의 텍스트를 반환하지 않습니다.
innerHTML1. 이름에서 알 수 있듯이 HTML을 반환한다.
2. 사용자에게 직접 텍스트를 입력받는 부분에서 Cross-site scripting (XSS) 공격을 당할 수 있다.
3.HTML로 구문 분석해야 하기때문에 textContents보다 느리다.
profile
항상 근거를 찾는 사람이 되자

1개의 댓글

comment-user-thumbnail
2022년 10월 15일

호수님 안녕하세요~~ 회고 15조 김민승이라고 합니다. 멋사 태그 타고 구경다니다가 프론트엔드 게시글 보고 반가워서 찾아왔어요 ◡̈ 이번주 고생하셨습니다!!

답글 달기