풀스택 웹개발 부트캠프 2주차 (2)

syxxne·2023년 7월 15일
0

부트캠프

목록 보기
4/42

javascript 객체

표준 객체

  • 자바스크립트가 기본적으로 가지고 있는 객체
  • String, Number, Array, Date, Math, ...

Date 객체

  • 시간과 날짜에 대한 정보를 얻기 위해 사용하는 객체
  • Date 객체의 메서드 (var date = new Date();)
    • date.getFullYear()
    • date.getDate()
    • date.getDay()
    • date.getTime()
    • date.getHours()
    • date.getMinutes()
    • date.getSeconds()

Math 객체

  • 수학에서 자주 사용하는 상수와 함수들을 미리 구현해놓은 객체
  • 브라우저마다 다른 결과를 얻을 가능성이 있어 정확한 결과가 필요한 경우에는 사용하지 않는 것이 좋음
  • Math 객체의 메서드
    • Math.PI
    • Math.E
    • Math.min()
    • Math.max()
    • Math.random()
    • Math.round()
    • Math.floor()
    • Math.ceil()
  • min ~ max 범위 내에서 random 수 뽑기
let num = Math.random() * (max - min) + min;

DOM (Document Object Model)

  • HTML 문서 요소의 집합
  • HTML 문서는 각각의 node와 object의 집합으로 문서를 표현
  • 각각의 node와 object에 접근하여 문서 구조, 스타일, 내용 등을 변경할 수 있도록 하는 것
  • Document : 웹 페이지에 존재하는 HTML 요소에 접근하여 행동을 하고자 할 때 사용하는 객체

Document - 요소 선택

getElementById

  • document.getElementById("Id 속성값")
  • 요소를 하나만 가져옴

getElementsByClassName

  • document.getElementsByClassName("클래스 속성값")
  • 요소를 배열(같은 데이터)로 가져옴 (HTMLCollection)

getElementsByTagName

  • document.getElementsByTagName("태그 이름")
  • 요소를 배열(같은 데이터)로 가져옴 (HTMLCollection)

getElementsByName

  • document.getElementsByName("name 속성값")
  • 요소를 배열(같은 데이터)로 가져옴 (NodeList)

querySelector

  • document.querySelector("CSS 요소 선택자")
  • 문서에서 만나는 가장 첫 번째 요소를 반환
  • 요소를 하나만 가져옴

querySelectorAll

  • document.querySelectorAll("CSS 요소 선택자")
  • 문서에 존재하는 모든 요소를 반환
  • 요소를 배열(같은 데이터)로 가져옴 (NodeList)

✨ HTMLCollection & NodeList

  1. HTMLCollection : <> 요소(태그) 노드만 포함 (텍스트 노드는 자식으로 포함 X)
    NodeList : 모든 노드들(태그, 텍스트 등)을 포함

  2. HTMLCollection : index, namedItem 함수로 자식 요소 노드(배열)에 접근 가능
    NodeList : index 외의 방법으로 자식 요소 노드(배열)에 접근 불가능
    → NodeList는 태그 이외의 텍스트 등도 모두 가져오는데, 텍스트는 속성을 가질 수 없기 때문에 namedItem으로 접근할 수 없는 게 어떻게 보면 당연한 이야기

  3. HTMLCollection : 동적 → DOM을 다루면서 새로운 요소를 추가했을 때, 추가된 요소도 가져올 수 있음
    NodeList : 정적 → 새로 추가된 요소를 가져올 수 없음 (처음 읽었을 때 정해진 요소들만 가져옴)

  4. HTMLCollection[] : 실제 배열 X, 배열과 유사한 객체 → forEach를 사용할 수 없음
    NodeList[] : 실제 배열 O → forEach를 사용할 수 있음

Document - 요소 다루기

createElement

  • document.createElement("요소 태그명")
  • html의 특정 노드를 생성

append

  • 요소.append()
  • 선택한 요소의 맨 뒤 자식 요소로 추가됨
  • 텍스트 등 요소 노드가 아니어도 추가할 수 있음

appendChild

  • 요소.appendChild()
  • 선택한 요소의 맨 뒤 자식 요소로 추가됨
  • 요소 노드만 추가할 수 있음

prepend

  • 요소.prepend()
  • 선택한 요소의 맨 앞 자식 요소로 추가됨

before

  • 요소.before()
  • 선택한 요소의 앞 형제 요소로 추가됨

after

  • 요소.after()
  • 선택한 요소의 바로 뒤 형제 요소로 추가됨

remove

  • 요소.remove()
  • 선택한 요소 삭제
  • 삭제 후, 반환 값 없음
let standard = document.getElementById("li");
standard.remove();  // li 삭제

removeChild

  • 요소.removeChild('요소의 자식 요소')
  • 선택한 요소의 자식 요소 삭제
  • 삭제 후, 삭제한 요소를 반환
let ul = document.querySelector("ul");
let standard = document.getElementById("li");

ul.removeChild(standard);  // ul의 자식 요소인 li 삭제

parentNode

  • 요소.parentNode
  • 선택한 노드의 부모 노드에 접근

children

  • 요소.children / 요소.children[0]
  • 선택한 노드의 자식 노드에 접근

previousSibling

  • 요소.previousSibling
  • 선택한 노드의 형제 노드에 접근
  • 텍스트와 주석을 포함하여 바로 앞에 위치한 노드를 가져옴
    ❗ 요소와 요소 사이에는 항상 #text 존재함
    따라서 실제 텍스트가 없어도 #text 출력됨

previousElementSibling

  • 요소.previousElementSibling
  • 선택한 노드의 형제 노드에 접근
  • 선택한 노드 바로 앞에 위치한 태그 요소 노드를 가져옴

nextSibling

  • 요소.nextSibling
  • 선택한 노드의 형제 노드에 접근
  • 텍스트와 주석을 포함하여 바로 뒤에 위치한 노드를 가져옴

nextElementSibling

  • 요소.nextElementSibling
  • 선택한 노드의 형제 노드에 접근
  • 선택한 노드 바로 뒤에 위치한 태그 요소 노드를 가져옴

innerHTML

  • 요소.innerHTML
  • 선택한 요소에 HTML 요소를 추가
  • 태그 인식 가능

innerText

  • 요소.innerText
  • 선택한 요소에 문자열을 추가 & 공백 문자 제거

textContent

  • 요소.textContent
  • 선택한 요소에 문자열을 추가 & 공백 문자 그대로 반환
    ❗ IE9 이전 버전에서는 동작하지 않으므로 주의

setAttribute

  • 요소.setAttribute("속성명", "값")
  • 선택한 요소의 속성 값을 직접 지정

classList

  • 요소.classList.add("클래스명") : 선택한 요소에 클래스 추가
  • 요소.classList.remove("클래스명") : 선택한 요소에서 클래스 제거
  • 요소.classList.contains("클래스명") : 선택한 요소에 해당 클래스 존재 여부 확인 후, boolean 반환
  • 요소.classList.toggle("클래스명") : 선택한 요소에 해당 클래스가 있으면 제거, 없으면 추가

EventListner

addEventListner

  • 요소.addEventListner(이벤트, 명령)
  • 선택한 요소에 지정한 이벤트가 발생하면, 약속된 명령어를 실행
document.querySelector(".box").addEventListener("click", function() {
alert("click");
})

이벤트의 종류

  • Click : 클릭
  • Mouse
    • Mouseover : 요소에 커서를 올림
    • Mouseout : 마우스가 요소를 벗어남
    • Mousedown : 마우스 버튼을 누르고 있는 상태
    • Mouseup : 마우스 버튼을 떼는 순간
  • Focus : 포커스가 감
  • Blur : 포커스를 벗어나는 순간
  • Key
    • Keypress : 키를 누르는 순간 + 누르고 있는 동안 계속 발생
    • Keydown : 키를 누르는 순간에만 발생
    • Keyup : 키를 눌렀다가 떼는 순간
  • Load : 웹페이지에 필요한 모든 파일(html, css, js 등)의 다운로드가 완료됨
  • Resize : 브라우저 창의 크기가 변경됨
  • Scroll : 스크롤이 발생함
  • Unload : 링크를 타고 이동하거나 브라우저를 닫음
  • Change : 폼 필드의 상태가 변경됨

0개의 댓글