FE RYAN
완벽하지 않으면 어때
FE RYAN
전체 방문자
오늘
어제

블로그 메뉴

  • 💾 깃허브 링크
  • 홈
  • 태그
  • 분류 전체보기 (151)
    • 개인프로젝트 (8)
      • 개인 포트폴리오 웹앱 (6)
      • 프론트엔드 기술면접 아카이빙 웹앱 (2)
    • 기록 (121)
      • 원티드 프리온보딩 인턴십 (0)
      • 코드스테이츠 프론트엔드 (75)
      • 생각들 (3)
      • Today I learned (32)
      • 회고 (9)
      • 리뷰 (1)
    • 개발 (17)
      • React (3)
      • Javascript (7)
      • CSS (1)
      • HTML (3)
      • HTTP (1)
      • 자료구조 (0)
      • 알고리즘 (2)
    • 코딩테스트 (2)
      • 백준 (2)
      • 프로그래머스 (0)
    • 디자인 (1)
      • UI & UX (1)
    • 수학 (0)
    • 자기계발 (0)

공지사항

인기 글

태그

  • 자바스크립트
  • Til
  • HTML
  • 리액트
  • seb39
  • 딥다이브
  • 회고
  • 원시타입
  • 타입스크립트
  • 자바스크립트 딥다이브
  • 메인프로젝트
  • 프론트엔드
  • 신입개발자
  • ES6
  • seb 39
  • 포트폴리오
  • 부트캠프
  • useMemo
  • css
  • 코드스테이츠

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
FE RYAN

완벽하지 않으면 어때

기록/Today I learned

TIL 220408

2022. 4. 8. 23:17
728x90

1. Input(학습)

  • 바닐라 자바스크립트 투두앱으로 DOM 조작 학습(강의링크)
  • css의 7가지 단위(링크)

2. Output(복습)

  • 이벤트 핸들러 함수
  • 웹게임 - 계산기

3. Notes(정리)

1. DOM 조작하기

1.1 이벤트 핸들러 함수 사용

이벤트 리스너의 콜백함수로 익명함수 또는 외부함수를 가져와서 사용할 수 있다. 다만 외부함수 사용시 () 사용할 경우 이벤트 발생과 상관없이 함수가 실행되기 때문에 () 생략하고 함수명만 넣는다.

const $button = document.querySelector('button');

// 익명함수 사용시
$button.addEventListener('click', () => { 버튼 클릭시 동작할 내용 });

// 외부함수 사용시
$button.addEventListener('click', onClickButton);

form 내 button 클릭시 페이지 초기화 방지하기

form 내의 button 클릭시 submit 기능이 기본값으로 작동하여 페이지가 초기화되므로 preventDefault 메소드를 사용하여 초기화 방지하기.

const $button = document.querySelector('.submit');
$button.addEventListener('click', (e) => {
  e.preventDefault();
  console.log('버튼 클릭 이벤트 감지');
});
// e는 현재 발생한 이벤트를 전달받는 매개변수이다.
// e: PointerEvent {isTrusted: true, pointerId: 1, width: 1, height: 1, pressure: 0, …}

자바스크립트로 요소 추가하기

  • .createElement() - 태그 생성
  • .createTextNode() - 텍스트 추가
  • .appendChild() 또는 .append() - 자식 요소 추가
const $button = document.querySelector('.submit');
const todos = document.querySelector('#todo-list');
const todoInput = document.querySelector('#todo-input');
let task;
const onClickButton = (e) => {
  e.preventDefault();
  const li = document.createElement('li'); // li태그를 생성하는 li변수 선언
  li.appendChild(document.createTextNode(todoInput.value)); // li 요소 안에 텍스트 추가(node객체로)
  li.classList.add('item'); // 생성한 li태그에 item 클래스를 부여하여 item 클래스에 부여한 css 스타일링 적용
  todos.appendChild(li); // 자식요소 추가
  todoInput.value = '';
  todoInput.focus();
};

$button.addEventListener('click', onClickButton);

이벤트 핸들러 함수로 고차함수를 사용하여 중복제거

const onClickNumber = (number) => {
        return () => {
          if (operator) {
            numTwo += number;
          } else {
            numOne += number;
          }
          $result.value += number;
        };
      };

document.querySelector('#num-0').addEventListener('click', onClickNumber('0'));
  • return값 미지정시 고차함수를 콜백함수로 호출해도 undefined가 반환되므로 return값으로 이벤트 발생시 실행할 함수를 넣는다.

4. Reminder

  • css의 rem단위는 root, 즉 에 지정된 폰트사이즈를 기준으로 함.
  • em은 현재 태그기준. 상속하면 중첩됨.
  • querySelector로는 무조건 하나의 태그만 선택되므로 동일한 클래스의 여러 요소를 선택하려면 querySelectorAll로 선택해야함.(참고: 여러 하위요소를 가진 하나의 요소는 그냥 querySelector로 선택가능)
  • nodelist에도 배열처럼 forEach로 반복문 돌릴 수 있음.
  • getElementsby~~로 선택시 : HTML Collection
  • querySelectorAll로 선택시: Nodelist
  • background와 background-color 둘 다 배경색을 지정해 줄 수 있으나 단축속성인 background는 다양한 백그라운드 옵션을 띄어쓰기로 구분해서 부여 가능.
background: #fff url("./image/button.jpg") no-repeat;
  • 고차함수: 반환값이 함수이거나 매개변수로 콜백함수를 받는 함수
  • 함수 중복 제거하는법: 달라지는 부분만 매개변수로 만든다.
728x90
저작자표시 비영리 변경금지 (새창열림)

'기록 > Today I learned' 카테고리의 다른 글

22.10.21 TIL  (0) 2022.10.21
TIL 220416  (0) 2022.04.17
TIL 220406  (0) 2022.04.06
TIL 220405  (0) 2022.04.05
TIL 220404  (0) 2022.04.04
    '기록/Today I learned' 카테고리의 다른 글
    • 22.10.21 TIL
    • TIL 220416
    • TIL 220406
    • TIL 220405
    FE RYAN
    FE RYAN

    티스토리툴바