HTML5 웹프로그래밍 입문-개정판

Similar documents
제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

Javascript.pages

PowerPoint Template

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

슬라이드 1

HTML5 웹프로그래밍 입문-개정판

PowerPoint Presentation

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

PowerPoint Presentation

PowerPoint 프레젠테이션

Microsoft PowerPoint - web-part01-ch10-문서객체모델.pptx

Microsoft PowerPoint - web-part01-ch09-브라우저객체모델.pptx

쉽게 풀어쓴 C 프로그래밍

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

Microsoft PowerPoint 세션.ppt

(Microsoft PowerPoint - 6\300\345.ppt [\310\243\310\257 \270\360\265\345])

PowerPoint 프레젠테이션

금오공대 컴퓨터공학전공 강의자료

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint - web-part02-ch15-문서객체조작.pptx

Design Issues

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - web-part01-ch08-기본내장객체.pptx

Microsoft PowerPoint - ch07 - 포인터 pm0415

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Javascript

Ext JS À¥¾ÖÇø®ÄÉÀ̼ǰ³¹ß-³¹Àå.PDF

PowerPoint 프레젠테이션

Tcl의 문법

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

Javascript

<4D F736F F F696E74202D204D41544C4142B0ADC0C7B7CF28B9E8C6F7BFEB295F3031C0E55FBDC3C0DBC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

PowerPoint 프레젠테이션

KNK_C_05_Pointers_Arrays_structures_summary_v02

JAVA PROGRAMMING 실습 08.다형성

Microsoft PowerPoint - chap11-포인터의활용.pptx

쉽게 풀어쓴 C 프로그래밍

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

슬라이드 1

JAVA PROGRAMMING 실습 05. 객체의 활용

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

C H A P T E R 2

3장

PowerPoint Presentation

PowerPoint Presentation

Modern Javascript

Microsoft PowerPoint - 웹프로그래밍_ ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밍

2파트-07

PowerPoint Presentation

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

쉽게 풀어쓴 C 프로그래밍

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

Microsoft PowerPoint - [2009] 02.pptx

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

PowerPoint 프레젠테이션

JVM 메모리구조

Microsoft PowerPoint - chap03-변수와데이터형.pptx

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2


1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

JAVA PROGRAMMING 실습 02. 표준 입출력

Visual Basic 반복문

Microsoft PowerPoint - chap10-함수의활용.pptx

미쓰리 파워포인트

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

설계란 무엇인가?

PowerPoint 프레젠테이션

- 이벤트의처리 <input type= button id= button1 value= 확인 /> <input type= button id= button2 value= 확인 /> 자바스크립트인경우 : document.getelementbyid( button1 ).oncl

쉽게 풀어쓴 C 프로그래밍

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Microsoft PowerPoint - chap06-1Array.ppt

PHP & ASP

Microsoft PowerPoint - web-part02-ch16-이벤트.pptx

설계란 무엇인가?

PowerPoint 프레젠테이션

HTML5

윤성우의 열혈 TCP/IP 소켓 프로그래밍

Microsoft PowerPoint - web-part02-ch13-기본.pptx

8장 문자열

쉽게 풀어쓴 C 프로그래밍

목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2

Microsoft PowerPoint - Java7.pptx

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - aj-lecture1-HTML-CSS-JS.ppt [호환 모드]

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

교육자료

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint - chap-11.pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - C++ 5 .pptx

HTML5

Transcription:

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

목차 9.1 자바스크립트내장객체다루기 9.2 자바스크립트사용자정의객체다루기 9.3 DOM 으로 HTML 문서다루기 2

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

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

자바스크립트내장객체 자바스크립트에서기본적으로제공되는객체 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(); 5

Date 객체의메소들 Date 객체 컴퓨터에서제공되는날짜 / 시간을얻거나설정 메소드이름 기능 getfullyear(), getmonth(), getdate(), getday(), gethours(), getminutes() getseconds() gettime() gettimezoneoffset() setfullyear(), setmonth(), setdate(), setday(), sethours(), setminutes() setseconds(), setmillseconds() 현재시간을구하는메소드. 각각연도, 월, 일, 요일, 시간, 분, 초값을리턴 1970.1.1 이후현재까지의시간, 천분의 1초단위표준시와현지시간간의표준시차, 분단위 사용자컴퓨터의시계를각각연도, 월, 일, 요일, 시간, 분, 초, 천분의 1 초값을설정 6

Math 객체 수학계산을위해기본적으로제공되는객체 별도의선언이나생성없이바로사용가능 상수값은 Math 객체의속성으로제공 주요수학함수는 Math 객체의메소드로제공됨 속성이름 설명 메소드이름 기능 E Euler 상수값 ( 약 2.718) LN2 LN10 cos(), sin(), tan() acos(), asin(), atan() 삼각함수코사인, 사인, 탄젠트 코사인, 사인, 탄젠트의역함수 LOG2E ceil(), floor(), round() 올림, 내림, 반올림 LOG10E ( 약 0.434) PI SQRT1_2 SQRT2 max(), min(), abs() sqrt(x), pow(x,y) log(x), exp(x) 최대, 최소, 절대값 7

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> 8

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

배열의생성및접근 배열의생성 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); 10 // 요소갯수가 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("length of array: " + arr.length + "<br/>"); document.write("arr = ["); for(i=0;i<arr.length;i++) document.write(" " + arr[i] + " "); document.write("] <br/> "); document.write("arr[" + 100 + "]: " + arr[100] + "<br/>"); document.write("length of array: " + arr.length + "<br/>"); arr[100] = 100; document.write("arr[" + 100 + "]: " + arr[100] + "<br/>"); document.write("length of array: " + arr.length + "<br/>"); 11

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

배열메소드사용예제 소스코드는교재및웹사이트참조 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); 13

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

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

사용자정의객체생성 초기화를통한객체생성 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"; 16

객체의접근 ( 읽기와수정 ) 객체의속성과메소드의접근방식 점 (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; 17

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

객체의생성, 수정과접근예제 소스코드는교재및웹사이트참조 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>... 19

객체생성자 생성자 (Constructor) 함수 객체를생성하는함수 ( 예 ) Object(), Array() 등 사용자정의함수를이용해서사용자정의생성자구현가능 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); this: 객체자신을지칭하는키워드 20

객체의메소드정의 객체는속성값으로함수를저장하면그함수는그객체의메소드가된다 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(); 21

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

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

트리구조의 DOM HTML 문서는태그요소의계층적구조 DOM도트리구조의형태 트리의노드 : HTML 태그요소, 노드는속성과속성값을가짐 웹브라우저에서 DOM 구조확인가능 개발자도구이용 24

DOM 트리구조 <html> <head> <body> <meta> <title> <header> <nav> <article> <footer> <button> <button> <button> <section> <h3> <ol> <li> <li> <li> 25

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

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

DOM 접근방법예제 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> 사용자입력 28

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

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 주소입력 버튼클릭 30

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"/> <br/> <input type = "button" value = "Check Navigator appversion" onclick = "document.getelementbyid('appversion').value = navigator.appversion;"/> <br/> <input id = "appversion" type = "text" size = "110"/> </form> 버튼클릭 31