HTML5 웹 프로그래밍 입문 (개정판) 9장. 자바스크립트 객체와 DOM.

Slides:



Advertisements
Similar presentations
웹 프로그래밍 제3장 JavaScript 생능출판사.
Advertisements

CHAPTER 10. DOM과 이벤트 처리, 입력 검증.
제 1장 자바스크립트란 ?.
HTML5 웹 프로그래밍 입문 (개정판) 3장. 링크와 멀티미디어.
2011년 봄학기 정보컴퓨터공학부 컴퓨터 소프트웨어 설계 및 실험
2002/3/20 HTML 2002/3/20
Chapter14 위치 정보 & 모바일 HTML5 Programming.
웹 2.0 및 Ajax 개요.
10장 동적 HTML (Dynamic HTML)
HTML과 CGI 프로그래밍 PHP 웹 프로그래밍 (PHP Web Programming) 문양세
1 HTML5 개요.
12장. JSP에서 자바빈 활용 제12장.
채팅 서버 만들기 10장 Do it! Node.js 프로그래밍 이지스퍼블리싱 제공 강의 교안 2017/03
9 표준 액션.
10장. 에러 처리 제10장.
JSP 내장 객체 개요 내장 객체 (참조 변수 이름) 자바 클래스 주요 역할
01. Index StarPlayer API Guide 01. Index 02. 상수값 정의 03. API 정의
Web Server와 DB 연동.
HTML CSS 자바스크립트 무작정 따라하기
정적 메소드와 정적 변수 상수 래퍼 클래스 포매팅
이 름: 정홍도 (과장) 팀 명: 개발사업팀 일 자:
HTML5 입문 인공지능 연구실.
기본학습 3: 자바스크립트 변수, 연산자, 사용자 정의 함수, 제어문과 내장 함수
9장 자바스크립트.
JavaScript.
18장. window, screen, document, link, anchor 객체
JavaScript 객체 전 혜 영.
HTML5 웹 프로그래밍 입문(교수용) 2장.HTML5 문서의 기본.
HTML CSS 자바스크립트 무작정 따라하기
멀티미디어 기본+활용 제대로 배우기.
AJAX 커머스아이 박준열.
웹서버와 설치에 필요한 것 WWW ( world wide web ) TCP/IP 프로토콜을 이용하는 클라이언트/서버 환경
Y. Daniel Liang 길준민 · 정재화.
5. JSP의 내장객체1.
HTML5+CSS3 실무 테크닉 김은기 저.
4. JSP의 스크립트 요소 Script 요소의 이해 선언문(Declaration) Scirptlet 표현식 주석
12 데이터베이스 사용하기.
Cookie 와 Session.
Html(front end) & jsp(back end)
Web Socket.
프로그래밍 원리 Chapter 05 자바스크립트 기초 신한대학교 IT융합공학부 박 호 균.
BIZSIREN 실명확인서비스 개발 가이드 서울신용평가정보㈜ 신용조회부 (TEL , FAX )
HTML.
충북대학교 데이터베이스 & 정보시스템 연구실 정 태 성
Chapter11 웹 스토리지 & 웹 데이터베이스
JavaScript COOKIE Chapter 10 Part III
JavaScript 기초 Chapter 8 Part II
HTML CSS 자바스크립트 무작정 따라하기
기초 프로그래밍 Yang-Sae Moon Department of Computer Science
CGI (Common Gateway Interface)
인터넷응용프로그래밍 JavaScript(array).
Ch 04. 애니메이션 송재철.
Chapter13 파일 접근 & 오프라인 접근 HTML5 Programming.
HTML CSS 자바스크립트 무작정 따라하기
명품 웹 프로그래밍.
CGI (Common Gateway Interface)
게임웹사이트운영 [3] 블록과 목록.
1장. HTML5 소개 To Flash 정보영재세미나 1 김태영교수님 홍창의.
JavaScript 객체(objects)
ASP 수행 화면(1).
8 기본 내장 객체.
LOGIN할 때 아이디, 비번 입력 여부 체크하기
C89(C++03) 프로그래밍 (Part 2) 7 배열 8 변수 범위 9 포인터 10 유도 자료형.
세션 (Session) Yang-Sae Moon Department of Computer Science
명품 웹 프로그래밍.
HTML HTML 기본 구조와 태그 다양한 태그 다루기
북한학 과목소개 최 장 옥 교 수 연평도 앞 월래도 시찰.
Web & Internet [10] 입문 – input 태그
컴퓨터 프로그래밍 및 실습 – 5주차 내장함수 / 외장함수 (1)
머니투데이 메인 UI수정 Moneytoday.co.kr - 작성자 : 한정환 - 작성일 :
Presentation transcript:

HTML5 웹 프로그래밍 입문 (개정판) 9장. 자바스크립트 객체와 DOM

목차 9.1 자바스크립트 내장 객체 다루기 9.2 자바스크립트 사용자 정의 객체 다루기 9.3 DOM으로 HTML 문서 다루기 소스코드 실행 사이트 주소 : http://webclass.me/html5_2e 폴더 ch02/ ~ ch13/에 각 장의 예제가 있어서 실행결과 확인 및 소스보기가 가능합니다. 자바스크립트 객체와 DOM

9.1 자바스크립트 내장 객체 다루기 9.1.1 자바스크립트 내장 객체 9.1.2 배열 객체

자바스크립트 객체 자바스크립트에서 제공되는 내장 객체와 사용자가 정의한 사용자 정의 객체로 구분 자바스크립트 객체는 속성 (property)과 메소드 (method)를 가짐 계층적 구조: 객체의 속성 값으로 또 다른 객체를 가질 수 있다

자바스크립트 내장 객체 객체 생성을 위해서는 new 연산자를 사용 자바스크립트에서 기본적으로 제공되는 객체 Array, Date, Math, String 웹 브라우저가 제공하는 window와 navigator 등은 9.3.3절에서 설명 객체 생성을 위해서는 new 연산자를 사용 var today = new Date(); var y = today.getFullYear(); var m = today.getMonth(); var d = today.getDate();

Date 객체의 메소들 Date 객체 컴퓨터에서 제공되는 날짜/시간을 얻거나 설정 메소드 이름 기능 getFullYear(), getMonth(), getDate(), getDay(), getHours(), getMinutes() getSeconds() 현재 시간을 구하는 메소드. 각각 연도, 월, 일, 요일, 시간, 분, 초 값을 리턴 getTime() 1970.1.1 이후 현재까지의 시간, 천분의 1초 단위 getTimezoneOffset() 표준시와 현지 시간 간의 표준시차, 분 단위 setFullYear(), setMonth(), setDate(), setDay(), setHours(), setMinutes() setSeconds(), setMillseconds() 사용자 컴퓨터의 시계를 각각 연도, 월, 일, 요일, 시간, 분, 초, 천분의 1초 값을 설정

Math 객체 수학 계산을 위해 기본적으로 제공되는 객체 별도의 선언이나 생성없이 바로 사용 가능 속성 이름 설명 E Euler 상수 값 (약 2.718) LN2 자연로그2, 𝐥𝐨𝐠𝟐 (약 0.693) LN10 자연로그10, 𝐥𝐨𝐠𝟏𝟎 (약 2.302) LOG2E 𝐥𝐨𝐠 𝟐 𝐞 (약 1.442) LOG10E (약 0.434) PI 원주율 𝛑 (약 3.14) SQRT1_2 𝟏/𝟐 (약 0.707) SQRT2 𝟐 (약 1.414) 메소드 이름 기능 cos(), sin(), tan() 삼각함수 코사인, 사인, 탄젠트 acos(), asin(), atan() 코사인, 사인, 탄젠트의 역함수 ceil(), floor(), round() 올림, 내림, 반올림 max(), min(), abs() 최대, 최소, 절대값 sqrt(x), pow(x,y) log(x), exp(x)

Date와 Math 객체 예제 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 <script type = "text/javascript" > var today = new Date(); var y = today.getFullYear(); var m = today.getMonth() + 1; var d = today.getDate();   document.write("오늘 날짜: " + y + "년 " + m + "월 " + d + "일<br/>"); var start = new Date(); var t1 = start.getTime(); var sum = 0; for(i=0;i<1000000;i++) { sum = sum + i; } var end = new Date(); var t2 = end.getTime(); document.write("1에서 1000000까지 더하는데 걸린 시간: " + (t2-t1) + "ms<br/>"); document.write("<br/>"); document.write("sin(60도) = " + Math.sin(Math.PI/3) + "<br/>"); document.write("ceil(4.3) = " + Math.ceil(4.3) + "<br/>"); document.write("floor(4.3) = " + Math.floor(4.3) + "<br/>"); document.write("round(4.3) = " + Math.round(4.3) + "<br/>"); </script>

배열 객체 배열 (array) 데이터 구조 자바스크립트 배열의 특징 데이터 요소 여러 개를 묶어서 처리하고자 할 때 배열의 각 요소가 동일한 데이터 타입이 아니어도 된다 예) 하나의 배열에 숫자 형이나 문자열 요소를 동시에 가질 수 있다 배열의 크기가 언제라도 변경가능 자바스크립트의 변수의 자동 형변환과 객체의 동적 속성 추가 특징에 따른 장점

배열의 생성 및 접근 배열의 생성 배열 요소의 접근 new 연산자를 이용하거나 배열 리터럴을 이용해 생성 배열이름[인덱스]와 같이 각괄호 ([ ])를 이용해 접근 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 var book_arr = new Array("멀티미디어 배움터2.0", "생능출판사", "최윤철, 임순범", 25000, 442);   // 배열의 내용 // book_arr[0]: "멀티미디어 배움터2.0" // book_arr[1]: "생능출판사 " // book_arr[2]: "최윤철, 임순범" // book_arr[3]: 25000 // book_arr[4]: 442 var book_arr2 = ["멀티미디어 배움터2.0", "생능출판사", "최윤철, 임순범", 25000, 442]; var arr100 = new Array(100); // 요소 갯수가 100인 배열 생성

배열의 사용 예제 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 var arr = new Array("one", 2, "3", 4, "five"); // arr 내용 = ["one", 2, "3", 4, "five"]   arr[6] = 6; arr[7] = "seven"; arr[9] = "3+6"; // arr 내용: ["one", 2, "3", 4, "five", undefined, 6, "seven", undefined, "3+6"] document.write("length of array: " + arr.length + "<br/>"); document.write("arr = ["); for(i=0;i<arr.length;i++) document.write(" " + arr[i] + " "); document.write("] <br/> "); arr.length = 3; document.write("arr[" + 100 + "]: " + arr[100] + "<br/>"); arr[100] = 100;

배열 객체의 메소드 메소드 이름 기능 reverse() 배열 내 요소들의 순서를 반대로 바꾼다. sort() 배열 내 요소들의 순서를 오름차순으로 정렬한다. 숫자가 문자보다 앞선다. join() 배열 내 요소를 모두 합쳐 하나의 문자열로 만든다. 이때 요소 사이에 끼워 넣을 문자열을 지정할 수 있다. concat() 배열의 뒤에 요소를 붙인다 (concatenation) slice() 배열의 요소들 중 일부만을 배열로 만든다. array.slice( 첫 요소 index, 마지막 요소 index + 1)

배열 메소드 사용 예제 소스코드는 교재 및 웹사이트 참조 http://webclass.me/html5_2e/ch09/arraymethod.html var arr = new Array(“zero”, “one”, 3, “25”); . . . arr,reverse(); var str = arr.join(“ = ”); arr.sort(); var new_arr = arr.concat(4, “five”, 6); var sliced_arr = arr.slice(2,6);

브라우저 제공 내장 객체 웹 브라우저에서 제공하는 자바스크립트 객체 document 객체 window 객체 대표적으로 navigator, window, document 객체 document 객체 HTML 문서를 DOM을 통해 접근하기 위한 최상위 객체 window 객체 웹 브라우저에 열려 있는 창 open(), close() : 새 창을 열거나, 현재 창을 닫는다 alert(), confirm(), prompt() : 경고창 혹은 키보드 입력 navigator 객체 현재 사용하는 웹 브라우저의 종류와 버전을 알아내기 위해 사용 대표적인 속성: appName, appVersion, userAgent

window 객체 예제 URL 주소를 입력받아 새로운 윈도우에 표시 close() 메소드로 그 윈도우를 닫는 예제 1 2 3 4 5 6 7 8 9 10 <script type="text/javascript" > var win; function open_window() { var url = prompt ("원하는 URL 주소를 입력하시오"); if (url) win = window.open(url); } </script>   <button onclick="open_window();">Open a page with new window</button> <button onclick="win.close();">Close the window</button> close() 메소드 실행시 윈도우 닫힘   open() 메소드로 새로운 윈도우 생성 URL 주소 입력   버튼 클릭     자바스크립트 객체와 DOM

navigator 객체 현재 사용하는 웹 브라우저의 종류와 버전을 알아내기 위해 사용 대표적인 속성: appName, appVersion, userAgent 1 2 3 4 5 6 7 8 9 10 11 <form> <input type = "button" value = "Check Navigator appName" onclick = "document.getElementById('appName').value = navigator.appName;"/> <br/> <input id = "appName" type = "text" size = "110"/> <input type = "button" value = "Check Navigator appVersion" onclick = "document.getElementById('appVersion').value = navigator.appVersion;"/> <input id = "appVersion" type = "text" size = "110"/> </form>   버튼 클릭 자바스크립트 객체와 DOM

9.2 자바스크립트 사용자 정의 객체 9.2.1 사용자 정의 객체 생성 9.2.2 객체 생성자

사용자 정의 객체 다루기 사용자 정의 객체 생성 Object 생성자와 new 명령어를 이용해 생성 아무런 속성을 가지지 않는 빈(blank) 객체가 생성 객체 생성 후 속성 및 메소드를 언제라도 추가 가능 점(dot, ".") 연산자를 붙혀서 속성과 메소드 접근 var book = new Object(); var book = new Object(); book.title = "멀티미디어 배움터2.0"; book.publisher = "생능출판사"; book.author = "최윤철, 임순범"; book.price = 25000; book.pages = 442;

사용자 정의 객체 생성 초기화를 통한 객체 생성 다양한 변수 형을 속성으로 사용 가능 객체의 계층적 구조 예) 문자열과 숫자 형의 속성을 함께 가질 수 있다 객체의 계층적 구조 객체의 속성 값으로 또 다른 객체를 가짐 var book = {title: " 멀티미디어 배움터2.0", publisher: " 생능출판사", author: " 최윤철, 임순범 ", price: 25000, pages: 442}; var book = new Object(); book.title = "멀티미디어 배움터2.0"; book.publisher = "생능출판사"; book.author = "최윤철, 임순범"; book.price = 25000;   book.info = new Object(); book.info.pages = 442; book.info.date = "2010년 1월 30일"; book.info.ISBN10= "8970506470"; book.info.size = "188mm*254mm";

객체의 접근 (읽기와 수정) 객체의 속성과 메소드의 접근 방식 속성을 삭제하기 위해서는 delete라는 명령어 이용 점(dot, ".") 연산자를 이용 배열 표시 ("[ ]") 속성을 삭제하기 위해서는 delete라는 명령어 이용 // 객체의 속성 접근 방법 var property1 = book.title; var property2 = book.info.price; // 혹은 var property3 = book["title"]; var property2 = book.info["price"];   // 객체의 속성 삭제 방법 delete book.title; delete book.info.price;

개선된 for 문 객체에 포함된 속성의 갯수나 이름을 모르더라도 객체내의 모든 속성을 접근할 수 있는 방법 대신, 배열 방식("[ ]")을 이용해야 함 속성의 실제 이름을 모르기 때문에 속성 이름을 직접 지정해야 하는 점(".") 접근 방식은 사용할 수 없다. // 개선된 for 문을 이용한 객체의 속성 접근 방법 for (var p in book) { document.write( "Property name: " + p + " Property value: " + book[p] + "<br/>"); }

객체의 생성, 수정과 접근 예제 소스코드는 교재 및 웹사이트 참조 http://webclass.me/html5_2e/ch09/object.html for (var p in book) “<td> book.”+p+“</td>” . . . for (var q in book[p]) “<td> book.”+p+“.”+q+“</td>”

객체 생성자 생성자 (Constructor)함수 객체를 생성하는 함수 (예) Object(), Array() 등 사용자 정의 함수를 이용해서 사용자 정의 생성자 구현 가능 this: 객체 자신을 지칭하는 키워드 function Book (title_value, publisher_value, author_value, price_value, pages_value) { this.title = title_value; this.publisher = publisher_value; this.author = author_value; this.price = price_value; this.pages= pages_value; } var book_obj = new Book("멀티미디어 배움터2.0", "생능출판사", "최윤철, 임순범", 25000, 442);

객체의 메소드 정의 객체는 속성값으로 함수를 저장하면 그 함수는 그 객체의 메소드가 된다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 function display_book() { document.write("Title: "+ this.title + "<br/>"); document.write("Publisher: "+ this.publisher + "<br/>"); document.write("Author: "+ this.author + "<br/>"); document.write("Price: "+ this.price + "원 <br/>"); document.write("Pages: "+ this.pages + "<br/>"); } function Book (title_value, publisher_value, author_value, price_value, pages_value) { this.title = title_value; this.publisher = publisher_value; this.author = author_value; this.price = price_value; this.pages= pages_value; this.display = display_book; var book_obj = new Book("멀티미디어 배움터2.0", "생능출판사", "최윤철, 임순범", 25000, 442); book_obj.display();

9.3 DOM으로 HTML 문서 다루기 9.3.1 DOM의 정의 및 문서 구조 9.3.2 DOM을 통한 HTML 문서 접근 9.3.3 브라우저 제공 내장 객체

DOM의 정의 및 문서 구조 DOM (Document Object Model) DOM 표준 자바스크립트 활용 자바스크립트는 HTML 문서를 객체(Object)로 바라보고 다룬다 HTML 문서 뿐만 아니라 CSS 속성도 변경 가능 DOM 표준 2000년에 DOM2 제정: 대부분의 웹브라우저가 지원 2004년에 DOM3 까지 제정된 상태 자바스크립트 활용 자바스크립트를 이용해 DOM의 내용을 추가/변경 HTML 문서의 태그/콘텐츠가 변경되는 효과 화면에 디스플레이 되는 내용도 변경 (CSS 속성 변경) HTML 문서의 내용을 동적으로 변경

트리 구조의 DOM HTML 문서는 태그 요소의 계층적 구조 웹 브라우저에서 DOM 구조 확인 가능 DOM도 트리 구조의 형태 개발자 도구 이용

DOM 트리 구조 <html> <head> <body> <meta> <title> <h3> <ol> document <article> <li>  charset "DOM Tree" "베스트 셀러" "컴퓨터와 IT..." "모바일 멀티..." "소셜미디어의 ..." id Text 속성

HTML 태그 요소와 DOM 요소 전체가 하나의 객체 예, 태그 요소는 DOM의 객체로 표현 됨 태그 요소에 포함된 다른 요소는 하위객체로 표현 예, type과 name은 속성 "text"와 "username"은 type과 name의 속성값 <input type = "text" name = "username"/>

DOM을 통한 HTML 문서 접근 웹 브라우저 환경과 HTML 문서를 모두 객체로 간주 DOM 접근 방법 일반 프로그래밍에서 처럼 객체에 접근해서 값을 읽어내거나, 저장하고 수정하는 작업을 수행 DOM 접근 방법 document의 forms 속성을 이용해서 접근하는 방법 요소 이름을 이용해 접근하는 방법 요소의 아이디를 찾아서 접근하는 방법 document 객체가 제공하는 getElementById() 등의 메소드를 이용 가장 쉽고 많이 사용되는 getElementById() 방법을 중심으로 설명

DOM 접근 방법 예제 (1) 1 2 3 4 5 6 7 8 <form> 추천도서: <input id="recommend" type="text" size="50"> </form> <script type="text/javascript"> dom = document.getElementById("recommend"); dom.value = "컴퓨터와 IT기술의 이해 [개정판-2판]"; </script> 자바스크립트 객체와 DOM

DOM 접근 방법 예제 (2) 사용자 입력 1 2 3 4 5 6 7 8 9 10 <form action=""> <input id="username" type="text" value="Name of User" /> </form> <script type="text/javascript"> var dom = document.getElementById("username"); alert(dom.value); var newValue = prompt("Type new value of text box", ""); dom.value = newValue; </script> 사용자 입력     자바스크립트 객체와 DOM