ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 25,26,27,28일차 - JS-DOM
    프론트/HTML,CSS 2024. 2. 28. 09:17

    JS-DOM (API)

    ■ 문서 내 객체들을 지정하고 상호작용하기 위한 API이다

    Document 내에서 요소를 가져오는 세가지 방법

    ■ document 객체에 접근해서 태그, 클래스, 아이디 이름으로 요소를 가져오는 방법

    ■동일하지만 쿼리 셀렉터를 통해 복수개의 요소가 있으면 최상위 요소만 가져온다  (구버젼에서는 에러 발생할 수 있음) 

    ■ querySelectorALL 은 복수개의 요소들이 담긴 NodeList 로 반환해준다  (구버젼에서는 에러 발생할 수 있음) 

    // getElements : 갯수에 상관없이 배열에 담아오겠다는 의미
    var elemTags = document.getElementsByTagName('h1');
    console.log(elemTags);
    var elemClass = document.getElementsByClassName('head2');
    console.log(elemClass);
    var elemId = document.getElementById('head3');
    console.log(elemId);
    
    // 쿼리셀렉터 : css 의 셀렉터를 차용한 방식
    // 복수개의 요소가 있을 경우 가장 위에 있는 하나만 가져올 수 있다.
    elemTags = document.querySelector('h1');
    console.log(elemTags);
    elemClass = document.querySelector('.head2');
    console.log(elemClass);
    
    // 복수개를 가져올 수 있는 쿼리 셀렉터
    elemClass = document.querySelectorAll('.head2');
    console.log(elemClass);

    요소의 속성을 변경하는 두가지 방법

    ■ 직접 요소의 속성에 접근하여 값을 변경하는 방법 ( 사용자 정의 속성은 변경하지 못한다 )

     setAttribute('속성이름', '값') 으로 사용자가 정의한 속성도 변경할 수 있다

     

    //input 태그 가져오기
    var input = document.getElementsByTagName('input');
    //console.log(input[0]);
    //input 태그의 모양을 버튼으로 바꿔 보자
    input[0].type='button';
    input[0].value='버튼';
    input[0].setAttribute('속성의 이름', '변경할 값');

    Event

    ■ 벨이 울리면, 손님 테이블로 이동해라

    ■ 문서 내의 요소에서 이벤트가 발생할 경우 함수가 호출되어 실행된다

    ■ 이벤트내에서는 특별한 객체들을 사용할 수 있다

    요소에 Event 를 등록하는 두가지의 방법

    1. <요소>.addEventListener() 로 요소에 직접 추가하기

    IE08 이하에서는 호환되지 않는다

    ■ 하나의 요소에 동일한 이벤트를 적용받는 함수를 여러개 만들 수 있다

    ■ 함수의 이름이 없는 익명 함수로 개발자는 간단하게 기능을 구현할 수 있다

    2.<요소 <이벤트 명>="<호출할 함수명>"

    this 는 실행 문맥에 따라 바뀐다

    ■ 일반 함수에서의 this: window(전역 객체), 내부 함수(일반 함수, 메소드, 콜백함수)는 모두 전역객체 바인딩

    ■ 메소드에서 this: 메소드를 소유한 객체

    ■ 생성자 함수에서 this는 객체 속성 할당을 위해 사용

    ■ 명시적 this: 특정 객체에 바인딩이 가능함

    Event Listener

    ■ 특정 요소에 이벤트 조건이 만족하면, 함수가 실행된다

    ■ 브라우저마다 기능이 지원되지 않을 수 있지만, 많이 사용한다

    Window Object

    ■ 브라우저의 창을 의미하고 창을 열수도 닫을수도 있다

    ■ 새 창을 열면 새 창은 "자식" 기존 창은 "부모"가 된다 자식 입장에서는 부모 창은 opener 로 조작할 수 있다

    Timing 

    ■ <담을 변수> = setInterval(실행할 함수, 시간(ms))

    - 1초마다 함수를 실행해라(함수를 없애지 않는다면 반복하여 실행한다)

    ■ <담을 변수> = setTimeOut(실행할 함수, 시간(ms))

    - 시간만큼 지난 후 함수를 실행해라

    ■ 담기는 변수안에 저장되는 값은 타이머의 식별자(1,2,3,4,5..)가 저장되어있다 여기서 식별자란 다른 타이머와 구분하고 접근하기 위해 임의로 지정한 일련번호, 주민등록번호와 같은 개념이다

    ■ 자바스크립트 내장함수에서 타이머를 관리하는 기능이 존재하지 않아, 변수 또는 배열에 넣어서 관리해야한다!!

    ■ clearInterval(삭제할 함수)

    - 함수를 삭제해라, 쓰레드 없애는 것처럼

     

    번외 DOM vs BOM

    ■ BOM란 웹 브라우저의 환경의 객체들을 모아둔 집합, 모델을 말한다

    ■ 반대로 DOM는 HTML 문서의 구조를 조작하고 내용, 디자인을 변경하는 등의 객체, 구조를 말한다

    ■ BOM 의 예제

    - 새 창 열기, 닫기, 브라우저의 현재 정보, 쿠키, JSON 등

    ■ DOM의 예제

    - 문서 내의 요소 가져오기, 속성 변경 등 


    Cookie

    ◆ 누구나 봐도 상관없는 정보를 저장하고 싶을때 사용한다

    JSON

    ◆ JavaScript Object 표기법, 웹 개발자에게 익숙한 형태인 자바스크립트 오브젝트로 통신합시다 만든게 요겁니다

    ■ 보안이 강조되는 데이터는 절대로 사용하면 안된다

    ■ json parser 로 문법검사하자

    ■ 서버 클라이언트에서 JSON 형태로 주고 받자

    // json 을 문자열로 만드는 함수
    var txt = JSON.stringify(obj);
    console.log(txt);
    
    // 문자열을 json 으로 만드는 함수
    var json = JSON.parse(txt);
    console.log(json);

    '프론트 > HTML,CSS' 카테고리의 다른 글

    28,29,30,31일차 - JQuery  (0) 2024.03.04
    21,22,23,24일차 - HTML, CSS, JS  (0) 2024.02.23
Designed by Tistory.