또는








자바스크립트 배우면서 정리했던 내용 ~



● Java Script의 정의


Nescape에서 개발된 객체지향 스크립트 언어를 의미합니다.



● Java Script의 종류


1. CSJS(Client Side JavaScript) : 간단히 말하자면 우리가 일반적으로 알고 있는 자바스크립트입니다.

HTML문장안에 포함되어 Client로 전송되고, 웹 브라우저안에서 실행되는 언어를 말합니다.

인터프리트 방식으로 실행됩니다. 자바의 문법을 빌어왔기 때문에 JavaScript라는 명칭을 사용하지만, 실제로 자바언어와는 크게 상관이 없다고 볼 수 있습니다.

Client Side JavaScript 는 <SCRIPT>..</SCRIPT>라는 태그안에 기술됩니다.


2. SSJS(Server Side JavaScript,LiveWire) : CGI(Common Gateway Interface)와 같은 기능을 할 수 있도록 자바스크립트의 기능을 서버쪽으로 옮긴 것으로 볼 수 있습니다.

Server Side JavaScript는 <SERVER>..</SERVER>라는 태그안에 기술하면 됩니다.


최초에 LiveWire란 명칭으로 개발하였으나, 중간에 Server-Side JavaScript로 명칭을 변경하 였습니다. 아직까지는 두 명칭을 서로 혼용하고 있는 상태입니다.


- Java Script 강좌 -



● Java Script의 개요


1. Java Script의 소개


기존의 정적인 HTML은 사용자와 상호작용할 수 있는 기능이나 즉각적인 응답을 받는 기능을 해결할 수 없다. 이런 문제와 제약을 해결하기 위한 시도중의 하나로 자바스크립트가 개발되었다.

자바스크립트는 자바를 기반으로 한 객체 지향 스크립트 언어로서 스크립트 코드가 HTML 문서 사이에 직접 삽입되어 번역(compile) 과정을 거치지 않고 브라우저에서 직접 실행 되어 자바스크립트를 지원하는 브라우저만 있으면 서로 다른 플랫폼(platform)에서도 실행되는 특징을 가지고 있다.

자바스크립트는 자바의 기본적인 문법구조를 그대로 사용하고 있어 자바와 유사하지만 동일한 언어는 아니다.

Java Script는 인터프리터 언어로서 클래스나 상속 개념이 없는 객체 기반 언어(Object Based Language) 개념을 가지고 이벤트를 처리 할 수 있도록 되어 있다.

Java Script는 넷스케이프사에 의해 라이브스크립트(LiveScript)라는 이름으로 처음 개발되었다. 이 스크립트 언어는 HTML을 확장하고 CGI를 대체하기 위한 목적을 갖고 있었다. 넷스케이프사가 선(SUN)에서 개발한 자바(Java)를 지원하기 시작하면서 자바스크립트(넷스케이프 2.0에서 지원)로 바뀌었다.

또 MS에서는 JScript(익스플로러 3.0에서 지원)라는 이름으로 지원하는데 Java Script와 대부분 호환을 가지고 있다. 그러나 웹상에서 스크립트 언어를 표준화하기 위해서 ECMA라는 단체가 있지만 완전한 표준은 되어 있지 못하다.

자바스크립트를 위한 도구로서 넷스케이프의 라이브와이어(LiveWire)와 볼런드사의 인트라빌더(intra Builder)가 있다. 라이브와이어는 자바스크립트를 기본 스크립트 언어로 사용하고 파일과 데이터베이스 제어를 위한 언어 확장 기능을 제공한다. 또 인트라 빌더는 자바스크립트를 프로그래밍 언어로 사용하는 웹 데이터베이스 개발 도구이다.

또 넷스케이프 엔터프라이즈 서버와 LiveWire, 마이크로소프트사의 ActiveX 서버 환경경하에서는 서버측에서도 사용된다.


2. Java Script의 기능과 실행


Java Script는 HTML과 사용자 사이의 상호작용이나 응답을 지원하고 멀티미디어와 에니메이션을 웹(Web) 상에 표현한다.

Event Handler로서 Mouse click, Form에 입력, page간의 이동 등 웹 페이지상에서 일어나는 event를 처리할 수 있다.

문서 객체 모형 기능으로 HTML로 정의된 Form, Frame, Layer 등의 객체 제어가 가능하다.

HTML에 속하지 않는 객체를 지원함으로서 HTML과 관련되지 않은 객체를 사용하여 별도의 정보, 예를들면, 사용자의 Browser 종류, Browser가 실행되고 있는 운영체제 등을 알수 있다.


요약하면 다음과 같다.


• 동적인 HTML 문서 작성 지원

• 

• 클라이언트측의 응용프로그램 개발에 사용

• 

• 복수개의 프레임을 지원

• 

• 데이터의 유효성 검사 수단

• 

• 대화식 폼의 생성

• 

• CGI없이 데이터베이스 제어

• 

• 클라이언트의 참조 테이블 생성

• 

• 클라이언트와 서버 간의 데이터 교환과 같은 상태 관리 기능

• 

• HTML 객체, 자바 애플릿, Active-X Control, Plug-in과 같은 클라이언트의 확장 기능 제공

• 

• 웹 서버의 확장

• 

• 자바스크립의 버전은 Java Script 1.0, 1.1, 1.2와 Jscript 1.0, 2.0이다.

• 자바스크립는 오직 클라이언트 쪽에서만 실행되기 때문에 망을 통한 데이터 전송 없이 모든 작업을 처리할 수 있다.

• 특정 플랫폼(Platform)에 관계없이 자바스크립트를 지원하는 브라우저만 있으면 실행이 가능하다.

• 현재 자바스크립트는 넷스케이프 2.0 이상, MS의 익스플로러 3.0 이상에서 지원한다.

• 

• 

• ● 기본형식과 개발도구

• 

• 1. Java Script의 기본형식

• 

• Java Script는 <Script> 태그로 시작해서 본문은 <!--로 시작하고 -->로 끝나는 HTML 설명문으로 묶어 있다.

• 그래서 Java Script를 지원하는 브라우저는 <Script> 태그 다음 "<!--"와 "-->"안의 내용을 script로 인식하고 그렇지 못한 브라우저는 HTML 설명문으로 처리한다.

• 하나의 HTML문서는 여러 쌍의 <Script> 태그로 존재할 수 있다.

• 또 Java Script는 대소문자의 구별이 있다.

• 

• a) 언어의 속성

• 

• <SCRIPT LANGUAGE="JavaScript"> 자바스크립트 1.0(네비게이터용 자바스크립트 2.0) 지원

• <SCRIPT LANGUAGE="JavaScript1.1"> 자바스크립트 1.1(네비게이터용 자바스크립트 3.0) 지원

• <SCRIPT LANGUAGE="JavaScript1.2"> 자바스크립트 1.2(네비게이터용 자바스크립트 4.0) 지원

• 

• b) 소스(Source)의 속성

• 

• -. HTML 문서내에 <script> 태그를 이용하는 방법

• 

• <HEAD>

• <TITLE> Java Script의 형식(1)</TITLE>

• <SCRIPT LANGUAGE="JavaScript">

• <!--

• . . . -->

• </SCRIPT>

• 

• -. HTML 태그의 이벤트에 응답하는 부분을 삽입하는 방법

• 

• <HEAD>

• <TITLE> Java Script의 형식(2)</TITLE>

• 

• <BODY>

• <form>

<INPUT type="SUBMIT" name="button1" value="버튼" onClick="alert("클릭")">

</form>

</BODY>


2. Java Script의 개발도구


Java Script의 입력은 일반 HTML 편집기로 가능하다.

그리고 특별한 자바스크립트를 위한 도구로서 Acadia Infise가 있다.

Java Script의 실행은 브라우저에서 인터프리터로 실행한다.

즉, HTML 문서가 브라우저에 의해 다운로드할 때마다 자바스크립트는 브라우저에 의해 해독되고 실행된다.

자바 스크립트의 내용은 사용자의 입력 및 여러 이벤트의 발생에 의해 적절한 부분이 수행되게 된다.

Java Script 소스의 위치는 HTML 태그내에 어디든 상관없으나 보통 함수는 <HEAD> 부분에 정의하고, 함수를 호출하는 것은 <BODY> 부분에 기술하는 것이 편리하다.


<HEAD>

<TITLE> Java Script의 형식(2)</TITLE>

<SCRIPT LANGUAGE="JavaScript">

<!--

function pushbutton() {

alert("클릭")

}

// -->

</SCRIPT>


<BODY>

<form>

<INPUT type="SUBMIT" name="button1" value="버튼" onClick="pushbutton">

</form>

<a href="doc1.html" target=b>Previous</a>

<a href="doc2.html" target=b>Home</a>

<a href="doc3.html" target=b>Next</a>

</BODY>

</HTML>



● 기본 문법


1. 토큰(Token)



• 자바스크립트가 이해할 수 있는 각각의 단어 혹은 구, 문자를 의미하는 단어.

• 

• 식별자(Identifier), 키워드(Keyword), 리터럴(Literal), 연산자(Operator), 구분자(Seperator)

• 

• 2. 식별자(Identifier)

• 

• 

• 변수, 메소드, 속성,객체의 이름을 의미.

• [예] 옳은 식별자 : current_webSite, NumberofHits, n, N

• [예] 잘못된 식별자 : current website, #ofHits, 2n, return

• 3. 키워드(Keyword)

• 

• 

• 프로그램 내부에서 미리 사용하는 식별자

• 

• [자바스크립트1.0]

• break, function, null, while, continue, if, return, with, else, in, this, false, int, true, for, new, var

• [자바스크립트1.1]

• typeof, void

• [자바스크립트1.2]

• do, switch, labeled, while

• 

• 

• 예약어 : 변수명, 함수명, 객체명, 메소드 이름으로 사용할 수 없는 식별자

• abstract, boolean, break, byte, case, catch, char, class,const,continue, default, delete, do,double, else, extends, false, final, finally, float, for, function, goto, if, implements, import, in, intanceof int, interface, labeled, long, native, new, null, package, private, protected, public, return, short, static, super, switch, synchronized, this, throw, throws, transient, true, try, typeof, var, void, while, with

• 

• 4. 리터럴

• 

• 

• 숫자형 : 정수나 실수 구분없다.

• [예] 57, -12.45, 3.141592, 1.1e10, 8.2456E112, O12(8진수 12), OX1ff(16진수 1ff)

• 

• 논리형 : 참(true : 1)이나 거짓(false : 0)중의 하나

• 

• 스트링 : "문자열", '문자열' 둘다 사용

• [예] "Kumi College", 'This is "substring" and others', "#16-4"

• [참고] 특수문자

• \b : 백스페이스

• \f : formfeed

• \n : LineFeed

• \r : Carriage Return

• \t : Tab

• \\ : 역슬래쉬

• \' : 작은 따옴표

• \" : 큰 따옴표

• 

• 널(null) : 값이 없는 것을 의미

• 

• 5. 변수

• 

• 

• 변수(Variable)는 특정 자료형의 값을 가지고 있는 저장 장소를 가리키는 것이다.

• 

• 변수는 반드시 알파벳 문자나 "_" 문자를 시작해야 하며, 키워드(keyword)라는 자바스크립트에서 명령으로 정해놓은 단어는 변수로 사용해서는 안된다는 제약이 있다.

• 

• 변수의 선언은 자바스크립트는 자바나 C/C++ 언어와는 다르게 변수의 타입을 엄격하게 검사하지 않는다.

• 

• 변수가 필요할 때마다 그 즉시 사용하게 되면 바로 변수의 선언이 되며, 자바 언어는 경우 변수는 변수의 타입과 변수의 이름을 함께 사용함으로써 변수의 선언이 이루어진다.

• 

• 자바스크립트는 특별히 변수의 타입을 지정할 필요가 없고, 단지 변수값을 할당하게 되면 입력된 값에 해당하는 타입의 변수가 선언된다.

• [예] Number_1, v1030, _name

• 

• 6. 연산자

• 

• 

• 표현식의 조합을 평가하는 방법

• 

• 기본 산술 연산자를 비롯하여 약 30개의 연산자 지원

• 

• 7. 주석

• 

• 

• 주석은 스크립트가 무엇을 하는 것인지 설명하기 위해 저자가 표시한다.

• 

• 주석은 자바스크립트 해석기에 의해 무시된다.

• 

• 자바스크립트는 자바 형식의 주석을 지원한다.

• 

• Java는 C++ 언어를 기본으로 하고, Java Script는 Java를 기본으로 하기 때문에 //로 시작하는 1줄짜리 설명문을 표현할 수 있다. 또 여러줄의 설명문은 /*로 시작해서 */로 끝난다.

• 

• 형식

• // 설명문

• /* 설명문 */

• 

• 

• ● 연산자(Operator)

• 

• 4.1 산술 연산

• 

• 

• 사칙연산(+,-,*,/) 외에 나머지 연산(%)과 음수(-) 기능을 제공한다.

• 

• [예] x=9+4 (뎃셈)

• x=9-4 (뺄셈)

• x=9*4 (곱셈)

• x=9/4 (나눗셈)

• x=9%4 (나머지)

• x=-9 (음수)

• 

• 4.2 비트 연산

• 

• 

• 변수의 값을 비트단위로 계산한다.

• 

• [예] x=23<<2 (왼쪽으로 2비트 쉬프트하고 0으로 채우기)

• x=23>>2 (오른쪽으로 2비트 쉬프트하고 0으로 채우기)

• x=23>>>2 (왼쪽으로 2비트 쉬프트하고 sign으로 채우기)

• x=23&0x00000001 (비트 AND)

• x=23.0x00000001 (비트 OR)

• x=23|0x00000001 (비트 XOR)

• 

• 4.3 논리 연산

• 

• 

• 변수의 값을 0(거짓)과 1(참)으로 나누어서 and, or 등 논리식으로 계산한다.

• 

• [예] expr1 && expr2 (두 값을 AND 하기)

• expr1||expr2 (두 값을 하기)

• !expr1 (거짓은 참으로 참은 거짓으로)

• 

• 4.4 비교 연산

• 

• 

• 두개의 값이 같은지를 비교한다.

• 

• [예] 11==2 (같은지?)

• 1!=2 (다른지?)

• 1<2 (작은지?)

• 1>2 (큰지?)

• 1<=2 (작거나 같은지?)

• 1>=2 (크거나 같은지?)

• 

• 4.5 스트링 연산

• 

• 

• 두 개의 문자열을 합치는 경우에 이용한다.

• 

• [예] str1+str2 ("kumi"+"college"인 경우 "kumi college"

• 4.6 대입 연산

• 

• 

• 변수에 계산된 수식의 값을 넣는데 이용한다.

• 

• [예] x=24 (24를 대입)

• x+=3 (변수에 3를 더하기)

• x-=2 (변수에 2를 빼기)

• x*=2 (변수에 2를 곱하기)

• x/=3 (변수에 3를 나누기)

• x<<=2 (변수에 왼쪽으로 2번 쉬프트하고 0으로 채우기)

• x>>=2 (변수에 오른쪽으로 2번 쉬프트하고 0으로 채우기)

• x>>>=2 (변수에 오른쪽으로 2번 쉬프트하고 sign으로 채우기)

• x&=OX00000001 (변수에 오른쪽 값을 AND 하기)

• x.=OX00000001 (변수에 오른쪽 값을 OR 하기)

• x|=OX00000001 (변수에 오른쪽 값을 XOR 하기)

• 

• (6) 연산자 우선순위

• 

• 

• 연산자의 우선순위는 식을 평가할 때 연산자가 적용되는 순서를 결정한다.

• 

• 괄호를 사용해서 연산자의 우선순위를 변경할 수 있다.

• 

• 그 우선순위가 높은 순으로 열거하면 다음과 같다.

• 

우선순위

연산자

1

. () []

2

! ~ - ++ --

3

* / %

4

+ -

5

<<>>>>>

6

<<= >>=

7

== !=

8

&

9

^

10

|

11

&&

12

||

13

? :

14

= += -= *= /= %= <<= >>= >>>= &= ^= |=

15

,

• 

• 

• ● 제어문과 반복문

• 

• 1. 조건문

• 

• if 문



• 논리적인 조건에 따라 특정한 동작을 수행

• 

• 조건이 참인 경우와 거짓인 경우 수행할 명령을 지정할 수 있음

• 

• 지정된 조건이 참이면 자바스크립트는 참에 해당하는 문장을 수행

• 

• 조건이 거짓이라면 자바스크립트는 거짓에 해당하는 문장을 수행

• 

• 

• 형식

• 

• if (condition) {

• statement_1; 

• }

• [else {

• statement_2;

• }] 

• 

• 2. 반복문

• 

• for 문


for 반복문은 계수기(counter)가 지정된 조건에서 거짓으로 평가될 때까지 반복



• 형식

• 

• for ([initializing_expr]; [condition_expr]; [loop_expr]) {

• statements;

• 

• 

• 

• for 문의 수행 순서

• 초기치가 결정 -> 조건이 평가 -> 조건이 참이라면 반복문이 수행 -> 조건이 거짓이라면 반복문은 종료 -> 증가분이 수행 -> 문장이 수행되고 2 단계로 수행

• 

• while 문



• while 문은 지정한 조건이 참인 동안 반복해서 수행한다.

• 

• 만약 조건이 거짓이면 반복문 내의 문장은 실행을 중지하며 제어권은 반복문 다음의 문장으로 넘어간다.

• 

• 조건의 판단은 반복의 시작점에서 수행되며, 문장내의 마지막 문장이 이어지자마자 바로 다시 수행한다.

• 

• 

• 형식

• 

• while (condition_expr) {

• statements;

• }

• 

• do ... while 문



• while 문과 비슷하게 동작하지만 조건문을 첫 번째 수행 이후에 실행.

• 

• 자바스크립트 1.2에서 추가

• 

• 

• 형식 

• 

• do {

• statements;

• } while (condition_expr)

• 

• break 문



• break 문은 현재의 while이나 for 반복문을 종료하고 프로그램의 제어권을 반복문 바로 다음의 문장에 전달한다.

• 

• continue 문



• continue 문은 while이나 for 반복문 내의 문장들의 실행을 종료하고 계속해서 다음 루프를 실행한다.

• 

• break 문과는 반대로 continue 문은 반복문 전체의 수행을 종료하지는 않는다.

• 

• while문 내에 있을 경우 조건으로 되돌아가고, for문 내에 있을 경우 증가분으로 건너뛴다.

• 

• Labeled



• break와 continue에서의 종료할 Label을 정의

• 

• 자바스크립트 1.2에서 정의

• 

• 3. 객체 제어문

• 

• for...in 문



• for...in 문은 객체의 모든 특성을 변수에 할당한다.

• 

• 각각의 특성에 대해 자바스크립트는 지정된 문장을 수행한다.

• 

• 넷스케이프 3.0 이상에서 동작, 익스플로러에서 동작 안함.

• 

• 

• 형식 

• 

• for (property in object) {

• statements

• 

• 

• new 연산자



• new 연산자로 사용자가 정의한 객체형을 생성한다.

• 

• 

• 형식

• 

• objectName = new objectType ( param1 [,param2] ... [,paramN] )

• 

• this 키워드



• 현재 객체를 참조하기 위해 this를 사용한다.

• 

• 일반적으로 this는 메쏘드내에서 호출하는 객체를 참조한다.

• 

• 

• 형식

• 

• this[.propertyName]

• 

• with 문



• with 문은 여러 문장에 대한 기본객체를 설정한다.

• 

• 여러 문장 내에서 객체를 지정하지 않는 참조는 기본객체를 참조하는 것으로 가정한다.

• 

• 

• 형식 

• 

• with (object) {

• statement

• 

• 

• switch 문



• 하나의 값을 다른 여러개의 값과 비교할 때 사용

• 

• 

• 형식

• 

• switch (variable) {

• case "var1" :

• statement_1

• break

• case "var2" :

• statement_2

• break

• :

• default :

• statement_n

• break

• 

• 

• 

• ● 함수(function)

• 

• 처리할 내용이 중복으로 쓰일 경우 매번 기술하면 프로그램이 길어진다. 이때 함수를 만들어 호출하면 간단해진다.

• 자바 스크립트에서 매개변수(parameter)는 Call by Value로 작동한다.

• 

• 1. 함수의 정의와 호출

• 

• 

• 프로그램에서 특정 작업을 하기 위해 독립적으로 만들어진 하나의 단위를 의미

• 

• 함수는 일반적으로 특정한 일을 하도록 모아 놓은 코드의 집합체

• 

• 객체를 만드는 목적에도 이 함수란 것이 이용

• 

• 

• Function 정의 형식

• 

• function 함수 이름 (인수1, 인수2, ...) {

• 실행될 코드들

• }

• 

• [예]

• 

• function func_name(para1, para2) {

• result = result + to_char;

• }

• 

• 

• 함수는 스크립트 태그안에서 직접 호출되거나, 문서내의 이벤트에 의해 호출

• 

• 2. 자바스크립트의 내장 함수

• 

• 자바 스크립트는 언어 자체에 내장된 최상위 수준 함수를 가지고 있다.

• 이들은 다음과 같다.

• 

• a) alert()

• ()안의 문자열을 다이얼로그박스로 보여주기

• [예] alert("stop");

• 

• b) prompt()

• 사용자에게서 입력받기

• [예] prompt("Enter Number", "0")인 경우에는 "Enter Number"로 제목주고, 0을 임시값으로 보여주고, 사용자 입력을 기다린다.

• 

• c) confilm()

• "OK"와"Cancel"의 두가지 중 하나를 선택하게 하고, "OK"를 누르면 true, "cancel"을 고르면 false를 돌려준다.

• [예] confilm("Are You OK?")

• 

• d) Eval()

• eval 함수는 인수로 전달된 수식을 계산하여 주는 내장 함수

• 

• 다음 예는 x와 y의 변수가 문자열이므로 eval 함수는 두 문자열을 결합시켜 "12.3"의 문자열을 출력

• 예1) x = "1"

• y = "2.3"

• z = eval(a+b)

• 

• 다음 예는 x와 y의 변수가 산술값을 가지므로 eval 함수의 연산을 통해 3.3을 출력

• 예2) x = 1

• y = 2.3

• z = eval(x+y)

• 

• eval 함수는 자바스크립트의 표현식(expression)을 수행시킨다.

• 

• e) parseInt()와 parseFloat()

• parseInt는 인수로 들어온 문자열을 정수로 바꾸어주는 내장 함수

• parseFloat는 parseInt와 동일한 구조를 된 것으로 문자열을 부동소수점으로 바꾸어주는 내장함수

• 

• f) escape()와 unescape()

• escape는 ISO Latin-1 문자 세트를 ASCII 형태로 바꾸어 주는 함수

• (예: escape("&")는 %26을 리턴)

• unescape 함수는 ASCII 형태를 ISO Latin-1 문자 세트로 바꾸어 주는 함수

• (예 : unescape("%26")은 "&"를 리턴)

• 

• 

• ● 이벤트와 이벤트 처리기

• 

• 1. 이벤트

• 

• 

• Web Browser에 의한 JavaScript는 주로 이벤트(Event)에 의해 실행한다.

• 

• 이벤트는 사용자가 특정한 행위를 발생했다는 신호를 가리킨다. 예를 들어 버튼을 눌렀다든가, 하이퍼텍스트 링크위로 마우스가 지나갔다든가, Form 내의 text 영역에서 커서를 이동시키는 것들이 일종의 이벤트라고 한다.

• 

• 자바스크립트는 이러한 이벤트가 발생하는지를 계속해서 체크한다.

• 

• 2. 이벤트 처리기

• 

• 

• 이벤트를 받아서 처리하는 일종의 함수 혹은 메쏘드라고 할 수 있다. 예를 들어 버튼을 눌려졌다는 이벤트에 따라 실행되는 함수가 이벤트 처리기(Event Handler)가 되는 것이다.

• 

• 이벤트에 따라 자바스크립트에 정의된 이벤트 처리기가 있다.

• 

• 

• 사용 형식 :

• TAG : HTML 태그

• EventHandler : Event Handler의 이름

• 

• 3. 이벤트의 종류

• 

• 

• 자바스크립트가 지원하는 이벤트와 발생시점은 다음과 같다.

• 

이벤트

발생 시점

이벤트 처리기

abort

이미지를 읽다가 중단시켰을 때

onAbort

blur

사용자가 Tab 같은 것을 이용해서 Form 요소로부터 커서를 이동시킬 때

onBlur 

click

From 요소나 Link를 Click할 때

onClick

change

text, textarea나 select의 값을 변경하고 이동하기위해 Tab을 눌렀을 때

onChange

dragdrop

브라우저 윈도우에 개체를 떨어뜨렸을 때

onDragDrop

error

문서나 이미지를 읽다가 오류가 발생했을 때

onError

focus

사용자가 Text나 Textarea로 cursor를 이동했을 때

onFocus

keydown

이미지, 링크, textarea에 키를 눌렀을 때

onKeyDown

keypress

이미지, 링크, textarea에 키를 누르거나 누르고 있을 때

onKeyPress

keyup

이미지, 링크, textarea에 키를 눌렀다가 놓을 때

onKeyUp

load

사용자가 Browser에서 page를 읽었을 때

onLoad

mousedown

버튼이나 링크위에서 마우스 버튼을 누를 때

onMouseDown

mousemove

커서를 옮겨 다닐 때

onMouseMove

mouseout

마우스가 링크나 특정한 영역안에 있다가 나갔을 때

onMouseOut

mouseover

사용자가 link나 anchor위로 mouse를 옮겼을 때

onMouseOver

mouseup

버튼이나 링크위에서 마우스 버튼을 띨 때

onMouseUp

move

새로운 윈도우로 옮겨갈 때

onMove

reset

입력 양식에서 리셋시켰을 때

onReset

resize

윈도우의 크기가 변경되었을 때

onResize

select

사용자가 Form 요소의 입력 필드를 선택했을 때

onSelect

submit

사용자가 Submit Button을 Click함으로서 Form을 제출할 때

onSubmit

unload

사용자가 현재 Page에서 벗어날 때

onUnload

• 

• 

• ● 객체(Object)

• 

• 1. 객체의 개념

• 

• 

• 자바스크립트는 객체개념에 기반을 두기는 하지만 완전한 객체지향언어는 아니다.

• 

• 객체(Object)란 데이터와 그 데이터를 가공하는 함수라고 정의할 수 있다.

• 

• 객체는 속성과 메쏘드라는 것을 포함한다.

• 

• < -. 메쏘드(Method)

• 

• 데이터를 가공하는 함수 즉, 객체와 객체의 외부 세계를 연결해주는 것을 메쏘드라고 하고, 객체의 속성값을 변경시키거나, 사용하기 위해선 이를 관리하는 인터페이스가 필요하다.

• 

• [예] 윈도우를 열거나 닫는 것, document나 frame에 문자를 쓰는 것 등

• 

• -. 속성(Property)

• 

• 각 객체는 속성을 가지며, 속성값을 변경하여 원하는 일을 할 수 있다.

• 

• 속성 참조 형식 : [객체명].[속성]

• 

• [예] document.bgColor -> Web Page의 배경색)

• window.status -> 브라우저 윈도우의 상태바에 나타날 문자열

• 

• 자바스크립트는 웹 페이지(Web Page)의 구조에 기반을 둔 객체들을 가지고 있다.

• 

• [예] Web Page는 "document"라는 객체, Browser Window도 "window"라는 객체

• 

• 2. 객체의 종류

• 

• a) 내장 객체

• 

• 

• 내장 객체는 Document, Browser 등에서 많이 사용되는 부분을 script에서 자체적으로 객체로 정의한 것을 말한다. [예] document, window, frame, form 등

• 

• 

• 자바스크립트의 내장객체

• 

• -. Array 객체

• -. Date 객체

• -. Math 객체

• -. String 객체

• -. Boolean 객체

• -. Function 객체

• -. Number 객체

• -. RegExp 객체

• 

• 

• 브라우저의 내장객체

• 

• -. Window 객체

• -. document 객체

• -. history 객체

• -. location 객체

• -. link 객체

• -. image 객체

• -. form 객체

• -. navigator 객체

• 

• b) 사용자 정의 객체 :

• 

• 

• 이미 있던 객체의 클래스를 이용해서 새로운 객체의 클래스를 만드는 대신 전문적인 용어로 "Property List"라는 구조를 이용하여 객체를 쉽게 만들수 있도록 지원한다.

• 

• 

• ● 자바스크립트의 내장객체

• 

• 1. Date 객체

• 

• 

• 날짜와 시간에 관련해서는 Date 객체를 사용

• 

• 현재의 날짜와 시간을 표시하려면 다음과 같이 새로운 객체를 생성한다.

• 

• today = new Date()

• 

• 

• Date 객체의 생성방법

• 

• new Date()

• new Date(miliseconds)

• new Date(datestring)

• new Date(year, month, day)

• new Date(year, month, day, hours, minute, seconds)

• 

• 

• miliseconds는 1970년 1월1일 0시를 기준으로 해서 현재까지 몇 milisecond가 지났는 가를 가지고 날짜를 만든다.

• 

• 

• datestring의 형태는 "month day, year hours:minutes:seconds"로 표시된다.

• (month의 경우는 영문명을 사용)

• 

• 

• Date 객체의 함수들

• 

객체

속성

메쏘드

Date

 

getDate, getDay, getHours, getMinutes, getMonth, getSeconds, getTime, getTimeZoneOffset, getYear, parse, setDate, setHours, setMinutes, setMonth, setSeconds, setTime, setYear, toString,toGMTString, toLocaleString

• 

• 

• 

• Date 객체의 함수 사용 방법

• 

• today.getHours()

• today.getMinutes()

• today.getMonths()

• today.getDate()

• 

• 

• Date 객체의 함수

• 

getDate

1 ~ 31

getDay

0: Sundaay, 1: Monday, ... ,7: Saturday

getHours

0 ~ 23

getMinutes

0 ~ 59

getMonth

0: January,... ,11: Decenber

getSeconds

0 ~ 59

getTime

1970년 1월 1일 0시 부터 ms 반환

getTimeZOneOffset

한국 시간과 GMT 시간의 분차

getYear

예, 1999는 99로 반환

parse

문자열 해석해서, get Time 해 줌

setDate

1 ~ 31로 해석

setHours

0 ~ 23

setMinutes

0 ~ 59

setMonth

0: Sundaay, 1: Monday, ... ,7: Saturday

setSeconds

0 ~59

setTime

1970년 1월 1일 0시 부터 ms 설정

setYear

예, 1999는 99로 설정

toString

Date 객체를 받아서 String으로

toGMTString

Date 객체를 받아서 "Mon,5 Feb 1999 17:16:34 GMT" 같이 변환

toLocalString

Date 객체 받아서 "MM/DD/YY HH:MM:SS"로 변환

• 

• 

• 2. Array 객체

• 

• 

• Array 객체는 프로그래밍 언어에서 동일한 타입을 가지는 데이터를 저장하고 다루는데 편리하다.

• 

• Array 객체를 new 연산자를 사용해서 만들 수 있다.

• 

• array_val = new Array("가", "나", "다", "라")

• array_val = new Array(100)

• 

• 

• Array 객체의 함수들

• 

객체

속성

메쏘드

Array

length, prototype

join, reverse, sort

• 

• 

• 3. Math 객체

• 

• 

• 수학식이나 상수들에 관련된 사항들을 가지고 있는 객체로 따로 생성해서 사용하지 않고 Math.constant나 Math.function()과 같은 형태로 사용

• 

• 

• "with" 문장과 사용하면 "Math."을 생략하고 사용할 수 있어 편리

• 

• with (Math) {

• x = cos(i)

• y = abs(x)

• i = PI * y

• }

• 

• 

• Math 객체의 함수들

• 

객체

속성

메쏘드

Math

E, PI, LN2, LN10, LOG2E, LOG10E, SQRT1_2, SQRT2

abs, acos, asin, atan, ceil, cos, exp, floor, log, max, min, pow, random, round, sin, sqrt, tan

• 

• 

• 

• Math 객체의 함수

• 

E

Euler's Constant(2.778...)

LN10

10의 자연로그값

LN2

2의 자연로그값

PI

3.141592.....

SQRT1_2

1/2 의 제곱근

SQRT2

2의 제곱근

abs()

절대치 구함

acos()

arc cosine - radian으로 변환

asin()

arc sine - radian으로 변환

atan()

arc tangent - radian

ceil()

2.4의 ceil은 3

floor()

2.4의 floor은 2

cos()

cosine - radian으로 변환

sin()

sin - radian으로 변환

tan()

tangent - radian으로 변환

exp()

exponential - radian으로 변환

log()

log - radian으로 변환

max()

최대치 - radian으로 변환

min()

최소값 - radian으로변환

pow()

pow(2,3)의 2의 3승

random()

0과 1사이의 난수

round()

round(2.1)은 2, round(2.8)은 3

sqrt()

제곱근

• 

• 

• 4. String 객체

• 

• 

• "message"와 같은 문자열 리터럴이거나 thePhrase와 같은 문자열 변수로 표현.

• 

• var str="My name is koo"

• alert(str.length)

• 

• 

• String 객체의 함수들

• 

객체

속성

메쏘드

String

length

anchor, big, blink, bold, charAt, fixed, fontcolor, fontsize, indexOf, italics, lastIndexOf, link, small, strike, sub, substring, sup, toLowerCase, toUpperCase

• 

• 

• 

• String 객체의 함수

• 

anchor()

문자열을 <A></A>로 감싸준다.

big()

문자열을 <BIG></BIG>로 감싸준다.

blink()

문자열을 <BLINK></BLINK>로 감싸준다.

bold()

문자열을 <B></B>로 감싸준다.

charAt()

charAt(2) 2번째(0,1,2) 문자를 변환

fixed()

문자열을 <TT></TT>로 감싸준다.

fontcolor()

문자열을 <FONT COLOR=color></font>로 감싸준다.

fontsize()

문자열을 <FONT SIZE=size></FONT>로 감싸준다.

indexOf()

문자열과 시작 index를 받아서, index 다음부터 문자열이 있는 곳을 찾는다.

italics()

문자열을 <I></I>로 감싸준다.

lastindexOf()

문자열과 시작 index를 받아서, index 앞부터 거꾸로 문자열이 있는 곳을 찾는다.

Link()

문자열을 <A></A>로 감싸준다.

small()

문자열을 <SMALL></SMALL>로 감싸준다.

strike()

문자열을 <STRIKE></STRIKE>로 감싸준다.

sub()

문자열을 <SUB></SUB>로 감싸준다.

substring()

index1에서 index2 전까지의 부분 문자열

sup()

문자열을 <SUP></SUP>로 감싸준다.

toLowerString()

문자열을 소문자열로 바꾼다.

min()

문자열을 대문자열로 바꾼다.

• 

• 

• 

• ● 브라우저의 내장객체

• 

• 1. 브라우저의 내장객체란?

• 

• 

• 브라우저의 내장객체는 현재 브라우저가 보여주고 있는 문서에 관한 여러 가지 정보 즉 Window 정보, History 정보, 문서가 존재하고 있는 위치에 관한 정보 등을 포함한다.

• 

• 브라우저는 자신이 현재 가지고 있는 모든 정보들을 객체로서 제공한다.

• 

• 2. 브라우저의 내장객체의 계층구조

• 

• 

• 브라우저 내장객체들은 계층 구조로 이루어져 있는데 다음과 같다.

• 

• 

• 

• 

• 3. Window 객체

• 

• 

• 브라우저 내장 객체들의 구조 중에서 가장 상위에 있는 객체

• 

• 

• window 객체의 Property와 Method

• 

window 객체

Property

status

Browser의 status bar에 나타날 문자열

defaultStatus

status에 지정된 문자열이 없을 때 나타날 문자열

self

자기 자신 객체

parent

window 객체 간의 계층 구조가 생길 때 상위 객체

top

window 객체 간의 계층 구조가 생길 때 최상위 객체

opener

open() method로 window를 연 문서가 있는 window

length

현재 윈도우의 프레임의 개수

frames[]

현재 윈도우에서 여러개의 프레임 즉, frames[0], frame[1], ...

location

현재 위치

history

현재까지 지나온 곳

document

현재 페이지에 대한 객체

Method

open()

window 열기

close()

window 닫기

alert()

간단한 메시지를 전달하기 위한 Dialog Box

confirm()

사용자로부터 확인을 받기 위한 Dialog Box

prompt()

사용자로부터 문자열을 입력받기 위한 Dialog Box

setTimeout()

지정된 시간동안 기다린 후 지정된 명령 실행

clearTimeout()

setTimeout 해제

Event Handler

onLoad

Browser가 문서를 모두 읽은 후 실행할 명령 지정

onUnload

Browser에 현재 문서를 모두 지운 후 실행할 명령 지정

onError

Browser가 문서를 읽던 중 에러가 발생했을때

onBlur

Browser가 focus를 잃었을때

onFocus

Browser가 focus를 얻었을때

• 

• 

• 4. Document 객체

• 

• 

• 문서의 <body> 나 <title> 태그 안에 있는 내용들과 직접적으로 연결되어 있다.

• 

• document 객체는 툴바, 상태바, 문서 위치 정보 등에는 접근할 수 없다.

• 

• 

• document 객체의 Property와 Method

• 

document 객체

Property

title

문서의 제목

location

문서의 URL 위치

lastModified

문서를 마지막으로 수정한 날짜

referrer

Link로 현재 문서에 왔을 때 이전 문서의 URL 위치

bgColor

문서의 배경색

fgColor

문서의 전경색

linkColor

문서에서 링크를 표시하는 색

alinkColor

링크를 클릭했을 때 나타나는 색

vlinkColor

이전에 방문했던 링크를 표시하는 색

anchors[]

문서에 있는 표식들의 배열

elements[]

현재 웹 페이지의 요소

forms[]

문서에 있는 입력 양식들의 배열

links[]

문서에 있는 링크들의 배열

cookies

클라이언트쪽의 PC에 저장한 정보

images

문서에 있는 이미지들의 배열

applets

문서에 있는 Java Applet들의 배열

embeds

문서에 있는 Plug-in들의 배열

Method

open()

문서에 데이터를 출력하기 위해 준비시키는 것

close()

문서에 데이터를 출력하는 것을 마무리

clear()

브라우저에서 문서 지우기

write()

문서에 데이터 출력

writeln()

문서에 데이터 출력(줄 바꾸기 자동 포함)

Event Handler

onBlur

문서가 focus를 잃었을 때

onFocus

문서가 focus를 얻었을 때

• 

• 

• 5. History 객체

• 

• 

• history 정보라는 것은 브라우저가 가장 최근에 방문하였던 URL 주소들을 의미한다.

• 

• history 객체에서 제공하는 여러 메소드들을 이용하여 방금 지나왔던 페이지로 이동할 수 있게 된다.

• 

• 단, history list속에 있는 URL 주소를 알아낼 수는 없다.

• 

• 

• history 객체의 Property와 Method

• 

history 객체

Property

length

history list에 포함되어 있는 URL 주소의 개수

Method

back()

history list에서 한단계 앞으로 이동

forward()

history list에서 한단계 뒤로 이동

go()

history list에서 임의의 위치로 이동

Event Handler

없음

 

• 

• 

• 6. Location 객체

• 

• 

• 현재 브라우저에 보이고 있는 문서 위치에 관한 여러 가지 정보를 제공

• 

• 

• location Property와 Method

• 

location 객체

Property

href

문서의 URL 주소

host

URL 주소의 호스트명과 포트번호

hostname

URL 주소의 호스트명

protocol

프로토콜 종류

pathname

디렉토리 위치

port

포트번호

hash

표식 이름

search

검색 엔진을 호출할 때 사용되는 형식

Method

reload()

브라우저의 현재 문서를 다시 읽도록 만드는 메소드

replace()

현재 문서를 특정 URL에 있는 문서로 바꿔치는 메소드

assign()

location.href를 설정

toString()

location.href를 String으로 치환

Event Handler

 

 

• 

• 

• 7. Link 객체

• 

• 

• HTML 문서에 들어있는 모든 Link에 대한 정보를 제공하는 객체로서, document 객체로부터 파생되었다.

• 

• links는 문서에 포함된 Link 객체들을 배열로 모아 놓은 변수로서, document.links[0]는 문서의 첫번째에 나오는 Link를 의미한다.

• 

• 

• Link 객체의 Property와 Method

• 

Link 객체

Property

target

지정된 URL에 연결된 후 정보를 보여줄 Window나 Frame

href

Link에 연결된 문서의 URL 주소

host

Link에 연결된 URL 주소의 호스트명과 포트번호

hostname

Link에 연결된 URL 주소의 호스트명

protocol

프로토콜 종류

pathname

디렉토리 위치

port

포트번호

hash

표식 이름

search

검색 엔진을 호출할 때 사용되는 형식

Method

없음

 

Event Handler

onClick

마우스로 링크를 클릭했을 때 발생하는 Event Handler

onMouseOver

마우스로 링크 위를 지나갔을 때 발생하는 Event Handler

onMouseOut

마우스가 링크 밖으로 나갔을 때 발생하는 Event Handler

• 

• 

• 8. Image 객체

• 

• 

• HTML 문서는 <IMG> 태그에 사용해 이미지를 삽입

• 

• 자바스크립트는 image 객체를 통해 이러한 이미지에 관한 정보를 나타낸다.

• 

• 이미지에 대한 접근은 document 객체에 있는 images 속성을 이용하거나, image 객체의 name 속성을 통해 할 수 있다.

• (예를 들어 첫 번째 이미지의 name 속성이 first_img라고 한다면, document.images[0] 또는 document.first_img 로 접근 할 수 있다.)

• 

• 

• Image 객체의 property와 method

• 

Image 객체

Property

name

이미지 객체의 이름

src

이미지 파일의 URL 주소

height

이미지의 세로 길이

width

이미지의 가로 길이

hspace

이미지와 주변 글자들간의 가로 여백

vspace

이미지와 주변 글자들간의 세로 여백

border

이미지 테두리선의 굵기

align

이미지와 주변 글자들간의 배치 방법 지정

ismap

이미지를 서버쪽 이미지 맵으로 사용

usemap

이미지를 클라이언트쪽 이미지 맵으로 사용

Event Handler

onAbort

이미지 전송을 중단시켰을 때

onError

이미지 전송중 에러가 발생했을 때

onLoad

이미지가 브라우저에 나타날 때

• 

• 

• 9. Form 객체

• 

• 

• form 객체는 여러개의 객체들로 구성되어 있는데, 그 객체들은 textarea, text, password, hidden, submit, reset, radio, checkbox, button, select이다.

• 

• 

• form 객체의 특성과 메소드

• 

Form 객체

Property

Method

Event Handler

text

defaultValue, name, value

focus(), blur(), select()

onBlur, onChange, onFocus, onSelect

textarea

defaultValue, name, value

focus(), blur(), select()

onBlur, onChange, onFocus, onSelect

checkbox

checked, name, value, defaultChecked

click()

onClick

radio

checked, name, value, index, defaultChecked, length

click()

onClick

button

name, value

click()

onClick

submit

name, value

click()

onClick

reset

name, value

click()

onClick

password

name, value, defaultValue

focus(), blur(), select()

onFocus, onBlur, onSelect

select

name, value, selectedIndex, options

 

onBlur, onFocus, onChange

hidden

name, value

 

 

options

name, value, selectedIndex

 

 

• 

• 

• 10. Navigator 객체

• 

• 현재 사용하고 있는 Browser에 관한 일반적인 정보를 제공하는 객체

• 현재 사용되는 브라우저의 버전 및 제공되는 mimeType, Plugin을 알수 있다.

• 

• navigator 객체의 특성과 메소드

• 

navigator 객체

Property

appName

Application 이름

appVersion

브라우저의 현재 버전

appCodeName

브라우저의 현재 코드명

userAgent

브라우저의 현재 User Agent

mimeTypes

현재 브라우저에서 지원하고 있는 MIME 타입들

plugins

현재 브라우저에 설치된 Plug-in들의 종류

Method

javaEnabled()

현재 브라우저가 Java를 지원하고 있는지를 검사

Event Handler

없음

 






(N20090711)



+ Recent posts