Transcript JavaScript

1
PC통신과 인터넷
9.JavaScript
PC통신과 인터넷
JavaScript 개요
 원래는
Netscape에서 사용할 수 있는 스크립트 언어
–Netscape 2.0 ~
–Live Script
 Sun
Microsystems와 공동프로젝트로 JavaScript 발표
–Live Script의 확장
2
PC통신과 인터넷
Java vs. JavaScript

극단적으로 말해서, 이름만 비슷하지 서로 다른 언어임.
문법상의 유사성
 상호간의 연계성 제공
–Javascript와 Java Applet간의 상호 정보공유 가능


Java
–본격 범용 프로그래밍 언어
–Compiler 언어
–Object Oriented
–강력한 기능 (Network, 분산객체, Graphics …)
–배우기 어려움

JavaScript
–Script 언어
–Interpreter 언어
–Object Based
–제한적 기능
–배우고 사용하기 쉬움
3
4
PC통신과 인터넷
JavaScript의 사용
 HTML
문서 내에 source를 포함
 <script>
… </script>내에 JavaScript source를 써 넣음
–이 블록은 보통 헤더(Header)에 포함시킴
–language 속성 : 값은 “JavaScript”로.
 주석문
( <!-- … --> )으로 묶어놓기도 함
–JavaScript를 지원하지 않는 옛날 브라우저를 위한 배려
–불필요
각
문장의 끝은 세미콜론(;)으로 끝나거나 그냥 Enter
예
<html>
<head>
<title>자바스크립트예제</title>
<script language=“JavaScript”>
…
</script>
</head>
<body></body>
</html>
PC통신과 인터넷
간단한 JavaScript 예제
<html>
<head>
<title>간단한 JavaScript예제</title>
<script language=“JavaScript”>
document..write(“Hello World!”)
</script>
</head>
<body>
이것은 자바스크립트 수행 결과임
</body>
</html>
5
PC통신과 인터넷
연산자
 변수
대입
–(변수명) = (값)
예) x=3
–변수 정의 필요 없음
–변수명은 영문자 숫자 조합. 첫글자는 영문자 또는 _. 대소문자 구분 철저
–문자열은 “ ” 또는 ‘ ’ 로 묶음
예) name=“서용원”
–참고 : var
 변수 선언문 (변수를 사용하기 전에 사용할 변수를 미리 선언)
 연산자
–수치 연산자
 사칙연산 ( + - * / )
 ++, --, +=, -=
–비교 연산자
 >, <, >=, <=, ==, !=
–조건 연산자
 &&, ||
6
7
PC통신과 인터넷
제어문
If (조건) {
…
}
If (조건) {
…
}
else {
…
}
If (조건) {
…
}
else if (조건) {
…
}
else {
…
}
while(조건) {
…
}
do {
…
} while(조건)
for(초기화 ; 조건 ; 증감식) {
…
}
break;
continue;
PC통신과 인터넷
함수(function)
 어떤
입력값을 주면 이를 이용하여 정해진 작업을 수행하고, 작업의 결과값을
리턴(돌려준다는 뜻)해 줌
–입력값을 인자(argument), 결과값을 리턴값(return value)라고 함
–예) y=sin(x)
 함수의
정의
function 함수이름(인자리스트) {
…
return 얼마
}
 함수의
사용 (호출, call)
–함수이름(인자값)
–변수=함수이름(인자값)
8
9
PC통신과 인터넷
예제 I - 음식 주문
<html>
<head>
<title>간단한 JavaScript예제</title>
<script language="JavaScript">
function order(x) {
if (x==1) {
alert("김치찌개를 주문하셨습니다.");
}
else if (x==2) {
alert("된장찌개를 주문하셨습니다.");
}
else {
alert("순두부를 주문하셨습니다.");
}
}
</script>
</head>
<body>
<form>
<input type=button value="김치찌개" onClick="order(1)">
<input type=button value="된장찌개" onClick="order(2)">
<input type=button value="순두부" onClick="order(3)">
</form>
</body>
</html>
PC통신과 인터넷
예제 II - 1~10까지의 제곱값 출력
<html>
<head>
<title>간단한 JavaScript예제</title>
<script language="JavaScript">
function jegob(x) {
return x*x;
}
i=1;
while (i<=10) {
document.write(i+"*"+i+"="+jegob(i)+"<br>");
i++;
}
</script>
</head>
<body>
</body>
</html>
10
PC통신과 인터넷
예제 III - 구구단 출력
<html>
<head>
<title>간단한 JavaScript예제</title>
<script language="JavaScript">
for (i=2; i<=9; i++) {
for (j=1; j<=9; j++) {
document.write(i+" * "+j+" = "+i*j+"<br>");
}
document.write("<hr>");
}
</script>
</head>
<body>
</body>
</html>
11
12
PC통신과 인터넷
객체(Object)
 객체의
개념
–attribute(property, 속성)
–method
 JavaScript의
객체
–JavaScript내장객체
 Date, String, Math, Array …
–브라우저 객체
 Window, Frame, Document, History…
–사용자 정의 객체
 직접 객체를 만들 수 있음
각
객체의 attribute와 method의 의미, 기능을 알고 있거나, 찾아 쓸 수 있어야
함
–reference
http://developer.netscape.com/docs/manuals/communicator/jsref/index.htm
PC통신과 인터넷
객체간 계층관계 (브라우저 객체)
13
PC통신과 인터넷
window object
 현재
떠 있는 브라우저 창을 가리키는 object
object 중 최상위 object임
 주요 property
 JavaScript의
–status : 브라우저 상태선에 나타날 문자열
–frames : window 내의 frame들의 매열
–document : window가 나타내고 있는 document
–location : window에 나타낼 웹페이지 주소
 주요
method
–open( ) : 새로운 창 열기
–close( ) : 창 닫기
–alert( ) : 메시지 전달을 위한 다이얼로그 박스
–confirm( ) : 사용자 확인을 받기 위한 다이얼로그 박스
–prompt( ) : 사용자로부터 문자열을 입력받는 다이얼로그 박스
–setTimeout( ) : 일정 시간 대기 후 정해진 명령 수행 (<- clearTimeout( ) )
–setInterval( ) : 일정한 시간간격으로 정해진 명령 수행 (<- clearInterval())
14
PC통신과 인터넷
window object
–back( ), forward( ) : 이전 페이지, 다음 페이지로 이동
–find( ) : 브라우저의 찾기 명령 수행
–print( ) : 현재 윈도우 인쇄
15
PC통신과 인터넷
예제I - 이름 물어 보기
<html>
<head>
<title>간단한 JavaScript예제</title>
<script language="JavaScript">
name=prompt("What's your name?");
document.write(name+"씨 환영합니다");
</script>
</head>
<body>
</body>
</html>
16
PC통신과 인터넷
예제II - 페이지 들어가기 전 확인
<html>
<head>
<title>간단한 JavaScript예제</title>
<script language="JavaScript">
function check() {
x=confirm("이곳은 21세 이상만 들어오실 수 있는 곳입니다. 정말 들어가시겠습니까?");
if (x==true) {
window.location="hello.html";
}
else {
back();
}
}
</script>
</head>
<body onLoad=check()>
사용자 확인 예제
</body>
</html>
17
PC통신과 인터넷
예제III - 상태 표시줄에 현재시간 나타내기
<html>
<head>
<title>간단한 JavaScript예제</title>
<script language="JavaScript">
function initialize() {
setInterval("showTime()", 1000);
}
function showTime() {
today=new Date();
timestr="현재 시각은 "+today.getHours()+"시 ";
timestr+=today.getMinutes()+"분 ";
timestr+=today.getSeconds()+"초 입니다";
window.status=timestr;
}
</script>
</head>
<body onLoad="initialize()">
시각 보여주기
</body>
</html>
18
PC통신과 인터넷
예제IV - 홈페이지에 시계 넣기
<html>
<head>
<title>간단한 JavaScript예제</title>
<script language="JavaScript">
function initialize() {
setInterval("showTime()", 1000);
}
function showTime() {
today=new Date();
timestr="현재 시각은 "+today.getHours()+"시 ";
timestr+=today.getMinutes()+"분 ";
timestr+=today.getSeconds()+"초 입니다";
document.form1.clock.value=timestr;
}
</script>
</head>
<body onLoad="initialize()">
시각 보여주기<br>
<form name="form1">
<input name="clock" type="text" size=40>
</form>
</body>
</html>
19
PC통신과 인터넷
예제V - 상태 표시줄에 문자열 scroll시키기
<html>
<head>
<title>간단한 JavaScript예제</title>
<script language="JavaScript">
function initialize() {
setInterval("showMessage()", 30);
str="안녕하세요 저의 홈페이지에 오신 것을 환영합니다~";
for(i=0; i<150; i++) str=" "+str;
}
function showMessage() {
window.status=str;
str=str.substring(1,str.length)+str.substring(0,1);
}
</script>
</head>
<body onLoad="initialize()">
상태표시줄에 문자열 스크롤<br>
</body>
</html>
20
PC통신과 인터넷
document object
 현재
창에 나타나 있는 문서를 나타내는 object
 주요
property
–title
–bgColor, fgColor, linkColor, alinkColor, vlinkColor
–forms, links, images
 주요
method
–write( ), writeln( )
21
PC통신과 인터넷
예제 - 글자색, 배경색 바꾸기
<html>
<head>
<title>간단한 JavaScript예제</title>
</head>
<body>
<form>
<input type="button" value="흰색" onClick="document.bgColor='#ffffff'">
<input type="button" value="하늘색" onClick="document.bgColor='#4080ff'">
<input type="button" value="연보라" onClick="document.bgColor='#ffa0ff'">
</form>
</body>
</html>
22
23
PC통신과 인터넷
이벤트(Event)
 (주로
사용자가 일으키는) 각종 사건
–마우스 움직이기, 마우스 누르기, 키보드 입력 …
 프로그램의
패러다임 변화
–DOS, UNIX --> GUI환경(Windows, X-Windows)
–procedural --> event-driven (event handling)
 Event
Handling(이벤트 처리)
–이벤트가 발생하면, 정해진 작업을 수행함
–이런 일을 하는 프로그램을 Event Handler(이벤트 처리기)라고 함
24
PC통신과 인터넷
이벤트(Event)
 JavaScript의
이벤트
–mouseover, mouseout, click, dblclick, dragdrop, mousemove,
– load, unload, move, resize, focus, blur
–submit, reset, change, select
–keypress, keydown, keyup
–abort, error
 이벤트
처리
–태그에 명시
–문법 :
<TAG eventHandler="JavaScript Code">
–eventHandler의 이름
 on+이벤트이름 (예: onMouseOver)
–예) <a href=“…” onMouseOver=“grimOn( )”>
PC통신과 인터넷
중요한 Event Handler
 <a>
tag
–onMouseOver, onMouseOut, onClick
 <body>
tag
–onLoad, onUnload, onBlur, onFocus
 입력
Form 관련 Tag들의 이벤트 핸들러
–입력 Form 부분에서 자세히 다룸
25
PC통신과 인터넷
26
예제
<html>
<head>
<title>Event처리 연습</title>
<script language="JavaScript">
function tell(s) {
document.form1.msg.value=s;
}
</script>
</head>
<body>
<a href="www.yahoo.com" onMouseOver="tell('마우스가 링크 위로 왔음')" onMouseOut="tell('마우스가 나갔음')">
이건 링크입니다</a>
<form name="form1">
<input name="msg" type="text" size=40>
</form>
</body>
</html>