Dain.Bora.Net  ver 2.0  
About Me
프로필
나의 가족
용's X-file
숙's X-file
다인홈피 ver 1.0
소중한 사람들
가족들
친구들
직장동료들
다인&건희
다인이 이야기
건희 이야기
엄마 이야기
기억속으로
가족들과 함께
즐거운 추억들
사진 & 물생활
디카 이야기
행복한 물생활
포토갤러리
게시판
부스러기들
자료실
좋은글
스터디
방명록
먹고자고놀고
가볼만한곳
먹고싶은것
링크
카운터
오늘 : 1
전체 : 30818
날자 : 2020/07/07

Category Category
JavasScript 총 정리
# 자바스크립트   2007-04-10 10:44
이상용
 







자바스크립트.............................................................

자바스크립트는 네스케이프사가 개발한 객체지향 스크립트언어로 HTML문서내에 작성하고 웹브라우저에 의해 실행된다. 웹브라우저가 가진 객체도 이용한다.

넷스케이프 네비게이터 2.0/익스플로러 3.0 이상이면 자바스크립트를 사용할 수 있다. 지금의 브라우저 상황에서는 별로 해당되지 않겠지만...

다만 브라우저마다 조금씩 지원하지 않는 것과 지원하는게 조금 차이가 있다.

자바스크립트는 작성자의 입장에서 보면 HTML이 버전업된 것처럼 자연스럽게 받아들여도 무방할 듯 싶다. HTML과 달리 에디터가 도와주지 않는게 흠이지만....


■ 웹문서에 꼭 필요한 자바스크립트의 기능을 살펴보면








 • 새창을 다룰줄 알아야 하고

 • 함수를 이용해서 매개변수 넘기기

 • 폼전송에서 폼요소 입력값 체크하기

 • 프레임간, 브라우저간 url이동과 값 넘기기

 • 레이어 다루기


위의 기능을 자연스럽게 사용하려면





자바스크립트의 이용 측면에서 정리를 하는 것으로 언어적인,이론적인 부분은 많이 생략한다!!!

처음 시작인 분은 10일정도 투자하여 함수부분 까지만 하고 asp로 넘어가는게 좋겠다. asp에서 다시 필요한 부분은 되돌아와서 하도록!!

항시 밥먹듯 코딩하는 언어는 아니므로 마스트 하려고 덤비는 건 피하는게 좋겠다.





변수, 배열,연산,조건문,반복문,객체와 메서드, 프로퍼티,이벤트에 대한 기초를 닦아야
할지니....







■ 자바스크립트 생김새


 • HTML문서 내에 작성할 때




 • HTML문서 외부에 따로 둘 때









*
*
*
확장자는 js이고 텍스트문서이다
다른 사이트의 js파일도 가능하다 (http://www.dragoneye.co.kr/aaa.js)
웹문서를 간결하게 해주고 여러문서가 공통으로 js파일을 사용할 수 있다.

 • 자바스크립트를 이해하지 못하는 브라우저를 위해









* 요즘 브라우저 상황에서는 거의 사문화된 것이지만 습관적으로!

 • 주석 처리









* // 이하부터 주석이 된다









■ 자바스크립트 위치


 • HEAD 태그내에



~~


 • BODY 태그 위에



~~


 • 필요시 문서내 적당한 곳에 (나중에 실행되는 차이가...)











* 예: 먼저 테이블이 끝나고 다음 테이블 시작하기전에


 







데이타형과 변수 .............................................................

자바스크립트에서 사용할 수 있는 데이타형과 변수의 사용법을 알아보고 간단한 예제를 통해 자바스크립트와 친분을 쌓아보자!!!



■ 데이타형






















정수형 10진수, 16진수, 8진수의 3가지 형태(양수나 음수)
실수형
부동소수점형
20.5, -30.5 와 같이 소수 부분이 있는 10진수 와 지수로 표현된 숫자
Boolean true와 false의 두 가지 값만을 가지며 주로 함수의 리턴 값이나 관계 연산자의 결과값으로 사용
Null 아무것도 없다는 것을 의미, 예외처리에 자주 사용한다
문자열 따옴표(“”, ‘ ‘)에 들어가는 모든 데이타는 문자열 데이타가 된다
특수문자



















\n 다음 라인으로 이동
\b 백스페이지
\t 탭의 크기만큼 이동
\' 작은 따옴표
\" 큰 따옴표
\\ 역 슬래시







■ 변수에 대해















변수 프로그램에서 자료형의 값을 가지고 있는 저장 장소
변수의 규칙 변수는 영어알파벳 문자로 시작하면 된다
예약어는 변수로서 사용하지 않으면 된다
변수의 선언













1 strName="홍길동" //문자열
intAge=20 //숫자
2 var srtName="홍길동" var intAge=20
3 var strName
strName="홍길동"
var intAge
intAge=20





  데이타형을 변수선언시 정의하지 않아도 되며,
변수의 내용에 따라 데이타형이 결정된다.







■ 간단한 예제





















1
2
3
4
5





  * document.write() 는 ()속의 내용을 브라우저에 출력하라는 메서드
1. 변수 사용없이 문자열을 출력
2. 변수를 이용하여 변수값을 출력
3. var 을 사용 : {} 블럭 내에서 지역변수가 됨
4. 큰따옴표 속의 문자열에 큰따옴표를 포함시키고자 할 때
5. 다른 구문을 줄바꾸지 않고 연속해서 코딩하고 자 할 때 ; 를 사용해서 구분 표시를...







■ 변수로 사용할 수 없는 예약어






abstract boolean break byte case catch char class const continue default do double else extend false final finally float for function goto if implements import in instanceof intinterface long native new null package private protected public return short static super switch synchronized this throw thorws transient true try var void while with


 







연산자 와 연산 .............................................................

연산은 프로그램에서 가장 흔하게 일어나는 일이다. 연산자의 종류와 연산의 의미를 알아둬야 한다.



■ 산술연산자













- 부호 변환
+,-,*,/ 사칙연산
% 나머지






















■ 관계연산자(조건문,반복문과 함께 많이 사용)






















> 보다 크다
>= 보다 크거나 같다
< 보다 작다
<= 보다 작거나 같다
== 서로 같다
!= 같지 않다

























■ 논리연산자(참,거짓에 대한 연산)



















! 논리 부정(여집합) * 참이면 거짓, 거짓이면 참
&& 논리 곱(교집합) * 둘다 참일때만 참
|| 논리 합(합집합) *둘중 하나라도 참이면 참
^ XOR(배타적 논리합) * 예제 생략
? 조건 표현식에 사용 * 예제 생략

























■ 대입(할당) 연산자(값을 할당할 떄)






















= 가장 많이 사용하는 연산자 inta=10, strName="홍길동"
+= inta=inta+10 과 같음
-= inta=inta-10 과 같음
*= inta=inta*10 과 같음
/= inta=inta/10 과 같음
%= inta=inta%10 과 같음







■ 증감 연산자(값을 할당할 떄)










++ 1씩 증가 (사전 증가,사후 증가)
-- 1씩 감소 (사전 감소,사후 감소)

























■ 비트 연산자가 있지만 생략함


 







조건문 IF, SWITCH.............................................................


조건문은 반복문과 함께 프로그램의 흐름을 제어하는 제어문으로 이게 없다면 고삐풀린 망아지 처럼 엉망이 되고 만다. 모든 프로그램언어에서도 비슷하게 사용되므로 처음인 시람은 착실히 공부해야 하는 부분이다.


■ IF







* else if 는 필요한 경우 계속 추가를...
* else 는 위의 모든 조건을 만족하지 않을 경우








if(조건) {
명령문
}
if(조건) {
명령문1
}
else {
명령문2
}
if(조건1) {
명령문1
}
else if(조건2) {
명령문2
}

if(조건1) {
명령문1
}
else if(조건2) {
명령문2
}
else {
명령문3
}


























■ SWITCH문







switch (표현식) {
case 값1 : 문장 1 ; break;
case 값2 : 문장 2 ; break;
case 값3 : 문장 3 ; break;
……
default : 문장 n;
}
표현식의 경우의 수가 일치할 때
준비된 명령문장을 수행한다.

해당하는 경우가 없을 때
디폴트를 사용할 수 있다.

* 탈출을 위해 꼭 break 를 !!!










 







반복문 FOR, WHILE, DO .........................................................


반복문은 조건을 동반하여 조건을 만족하는 경우 준비된 명령문을 수행하고 조건에 맞지 않으면 다음 명령을 수행한다. 얘도 모든 프로그램에서 비슷하게 사용되므로 잘 익혀두면 다른 언어를 배울 때 누운 소 타기다.!!!


■ FOR 반복문







for(초기값; 종료 조건; 증감식) {
명령문
}

상수(변수)를 정의하고
이 상수의 시작과 끝을 정해 두고
정해진 간격으로 준비된 명령을 반복 수행시킴
























■ WHILE , DO ~~ WHILE 반복문
* for 문과 달리 조건 변경을 해줘야 한다









while (조건) {
명령문
}
조건이 참인 경우 명령문을 반복 수행
do {
명령문
} while(조건)
일단 명령문을 한번 수행후 조건을 검토하여 참이면 반복 수행


















■ break, continue 문(for, while, do 문 속에서)










continue
아래 수행을 중지하고 조건 검토로 이동
break 반복문 자체를 완전 탈출함













 







대화상자 (alert, confirm) ……………………………………..

얘는 나중에 나올 브라우저 객체의 메서드지만 앞으로 예제에 사용될 것이므로 미리 좀 알아두자!!!


alert() 은 가급적 웹문서를 따로 만들어 메시지를 전하는 게 좋은 방법이고

confirm() 은 중요한 처리를 앞두고 한번 더 확인할 필요가 있을 경우는 꼭 사용하여야 할 것 같다



■ alert() : 웹문서를 따로 만들지 않고도 간단히 메시지를 전할 수 있다.








alert("얼랏입니다") 또는

str = "드래곤"
alert(str)
경고 메시지창을 띄우기





















■ confirm() : 확인시 true 이고 1이라는 것!








if (confirm("진짜 삭제?")!=0) {
명령문// 0이 아니면 1이니까 확인
} 또는

message="진짜 삭제?"
if (!confirm(message)) {
명령문
}

확인상자로 "확인" 과 "취소" 둘중 선택을 할 수 있다.

확인을 누르면 confirm("진짜 삭제?") 는 true(1) 을

취소 을 누르면 confirm("진짜 삭제?") 는 fasle(0) 을 갖는다





















■ prompt() : 입력값을 받아 처리할 수 있다






* 많이 사용하지 않을 것 같아서 생략하는게..


 







내장 함수 …………………………………………………


내장함수란 자바스크립트 언어 자체에서 지원하는 함수로 자주 사용할 것으로 예상되는 것들을 함수로 만들어 둔 것을 얘기한다.
다음은 사용자 입력값을 가지고 계산을 할 때 꼭 필요한 함수들이다.!!!


■ eval()







eval("50")+50 또는

inta="50"
eval(inta)+50
숫자 형태를 가진 문자열이나 표현식을
숫자로 바꿔준다.

* 사용자 입력값을 계산을 위해 사용한다면 꼭 필요한 조치이다.















■ parseInt() / parseFloat()







paresInt("10.5")+50 또는

inta="10.5"
parseInt (inta)+50
숫자 형태를 가진 문자열이나 표현식을
정수나 실수로 바꿔준다.

* 사용자 입력값을 계산을 위해 사용한다면 꼭 필요한 조치이다.















■ isNaN()







isNaN("10.5") 또는

inta="10.5"
isNaN(inta)


// NaN : Not a Number
표현식이나 값이 숫자가 아닌지를 true/false 로 리턴함.

* 숫자가 아니면 true를 !!! (주의)

* 사용자 입력값이 숫자가 아닌지/인지를
판단하고자 할 때!!!















■ escape() / unescape()










escape("가") 또는

stra="가"
escape(stra)
unescape("%uAC00") 또는

inta="%uAC00"
unescape(inta)

알파벳과 숫자 및 *, @, -, _ , + , ., / 를 제외한 문자를 모두 16진수 문자로 바꾸어 준다

왼쪽과 반대로









 







사용자 정의 함수 .........................................................


가장 일반적인 자바스크립트 사용 방법으로 일련의 실행과정을 자바스크립트 코드로 묶어서 이름을 주고 필요할 경우 얘의 이름을 불러서 실행되도록 하는 방법이다.


이름을 불러주지 않으면 실행을 하지 않는다!!!


■ function (소문자로!)







1. 매개변수 없는 경우

function 함수이름() {
자바스크립트 코드
}
함수이름 뒤에는 꼭 () 를 ...
이 함수가 수행할 범위는 {} 로 ...















2. 매개변수 있는 경우

function 함수이름(변수1,변수2, ...) {
자바스크립트 코드
}
함수이름 뒤에는 () 속에 매개변수를 지정

* 호출하는 쪽에서 매개해 줘야!!















3. return 값이 있는 경우

function 함수이름(변수1,변수2, ...) {
자바스크립트 코드
}
함수 실행 결과 리턴값을 호출 한 쪽 \에 넘겨줄 수 있다.

















■ function 호출하기














1. 다른 자바스크립트 구문에서 (위의 경우) * 다른 자바스크립트 구문이 실행될 때
2. 링크에 의해 실행
3. body 태그에서 * 페이지 로딩시 실행
4. 기타 나중에 나올 다양한 이벤트에 의해 (onClick, onMouseOver 등등등등...)
위의 경우는 ...

첫째 자바스크립트 구문은 함수이기 때문에 호출을 받아야 실행됩니다.
둘쨰 자바스트립트 구문은 함수가 아니므로 자동으로 실행됩니다.


 







내장객체 Arrary() : 배열 .........................................................


자바스크립트에서 사용할 수 있는 객체는 자바스크립트 언어 자체에서 지원하는 객체와 자기 것은 아니지만 브라우저에 포함된 객체를 사용할 수 있다.

* 메서드, 함수, 프로퍼티, 객체에 대한 얘기는 나중에 기회가 있을 때 하기로 하고 처음인 분은 당장 중요한 아닐 것 같다. 이 개념을 모르고도 사용하다 보면 나중에는 저절로 알게 되는 날이 온다. 결국 모르면 안된다는 얘기 같기도...



자주 사용하는 중요한 객체 위주로 메서드와 프로퍼티 를 살펴보자!!!


■ Array 객체(배열을 사용할 수 있다)
* 아주 중요함






myary = new Array() 또는

myary = new Array(5)
배열이름만 선언

배열이름과 배열크기를 선언 (총 5개 요소)

























속성
length 배열의 크기(배열요소의 개수)
메서드
join()
배열요소들을 하나의 문자열로 만들어 줌
reverse() 배열요소의 값의 순서를 역순으로 바꿈
sort() 배열요소의 값을 정렬
concat(제2의 배열) 두 개의 배열을 하나로 만들기
slice(s, e) s 첨자의 배열요소값 부터 e미만의 배열요소값 가져와서 새로운 배열 만들기


















 


 







내장객체 String() : 문자열 .........................................................


문자열은 무조건 잘 다뤄야 한다. 특히 길이, 특정문자 찾기, 특정문자 포함여부등을 체크할 때 많이 사용하는 객체이다. 예제를 꼭 해볼 것 !!


■ String객체(문자열 관련)
* 아주 중요함






문자열.프로퍼티 또는
문자열.메서드
사용자 입력값을 체크하는 중요한 객체!!!

























속성
length 문자열의 길이 (한글 한문자도 1로)
메서드
charAt(숫자)
숫자 위치에 해당하는 문자
indexOf(문자 또는 문자열) 문자 또는 문자열이 나오는 위치를 숫자로
* 왼쪽 부터
substring(숫자1,숫자2) * 소문자로 위치로 숫자1 에서 숫자2-1 사이 문자열
split(대상,"기준문자") 대상문자열을 기준문자로 분리=>배열로
* 기타 많지만 자주 사용하는 것만!  


























 







내장객체 Screen(), Date() .....................................................


아래는 있다는 것만 알아두자.








■ Screen 객체(사용자 컴퓨터의 화면 관련)







screen.프로퍼티 브라우저의 크기와 관련된 정보를 얻을 수 있다. (* new 연산자 없이)















availWidth 브라우저에서 내용을 보여는 부분의 너비
availHeight 브라우저에서 내용을 보여는 부분의 높이
height 전체 화면의 height값
width 전체 화면의 width값
















■ Date 객체(사용자 컴퓨터의 시스템 시간을 참조)







strdate = new Date()

메서드,프로퍼티 사용
Date 객체의 인스턴스 생성

Date 객체와 같은 기능을 가진 객체를 하나 만들면 (strdate) 얘를 통해서 Date 객체가 가진 메서드와 프로퍼티를 사용할 수 있다.

* 이 때 만들어진 strdate같은 걸 객체의 인스턴스라고 부른다. 똑 같은 샘플 !!!











































값 가져오는값 메서드
getYear() 1970년 이후의 연도
1970~1999년도 사이는 0~99
그 이후는 네 자리 숫자의 년도
getMonth() 월0(1월)-11(12월)
getDay() 요일, 0(일)-6(토)
getHours() 시간, 0-23
getMinutes() 분, 0-59
getSeconds() 초, 0-59
값 설정하는 메서드
setYear() 1970년 이상을 설정
setMonth() 월을 설정
setDay() 요일을 설정
setHours() 시간을 설정
setMinutes() 분을 설정
setSeconds() 초를 설정













* 기타 Number, Event 등등이 있지만 이 정도면 충분할 것으로 본다.
* 수학 관련 각종 계산 을 하려면 Math()를 따로 살펴 보시도록


 







자바스크립트 이벤트 .....................................................


아주 중요한 이벤트!!!
이벤트란 모든 행위를 말하는 것으로 프로그램에서는 미리 사용자의 행위를 예측하여 미리 사용할 수 있도록 이벤트를 많이 준비해 놓고 있다.


예를 들어 사용자가 마우스를 클릭할 것이다.... 이건 click 이벤트로 준비!
이게 없다면 우리는 사용자가 마우스를 클릭했는지 부터 알아내야 다음 일을 할 수 있을 것이다. 고맙게도 click이 일어났다는 걸 자동으로 알 수 있으니 얼마나 고마운 일인가...


(Click, MouseOver, MouseOut, Submit...)

이벤트 핸들러란 ?

이러한 이벤트와 우리가 준비한 프로그램을 연결해 주는 구실을 한다

(onClick,onMouseOver,onMouseOut, onSubmit...)

* 그래서 우리가 할일은 이벤트가 일어났을 때 할 일을 준비하고
이벤트 핸들러에게 그 일을 하도록 연결해 두면 되는 것이다~~~

* 익스플로러와 네비게이트 사이에 약간의 차이가 있어 익스플로러 기준으로 !!!








■ 이벤트의 종류와 의미 (이벤트핸들러는 이벤트에 on을 붙여 준다)






































































blur
포커스를 다른곳으로 옮길 경우
click 링크나 폼의 구성원을 클릭할 때
change 선택값을 바꿀 경우
focus 포커스가 위치할 경우
mouseover 마우스가 올라올 경우
mouseout 마우스가 떠날 경우
mousedown 마우스를 누를 경우
mousemove 마우스를 움직일 경우
mouseup 마우스를 눌렀다 놓을 경우
select 입력양식의 하나가 선택될 때
submit 폼을 전송하는 경우
load 페이지,윈도우가 브라우져로 읽혀질 때
unload 현재의 브라우저,윈도우를 떠날 때
error 문서나 이미지에서 에러를 만났을 때
reset 리셋 버튼이 눌렸을 때
dbclick 더블클릭시
dragdrop 마우스 누르고 움직일 경우
keydown 키 입력시
keypress 키 누를 때
keyup 키를 누르고 놓았을 때
move 윈도우나 프레임을 움직일 때
resize 윈도우나 프레임 사이즈를 움직일 때







■ 메서드



















blur()
입력 포커스를 다른 곳으로 이동시킴
click() 마우스 버튼이 눌러진 것처럼 해줌
focus() 입력 포커스를 준 것처럼 해줌
submit() 폼의 submit 버튼을 누른 것처럼 해줌
select() 메소드 폼의 특정 입력 필드를 선택함







■ 속성

























event.keyCode 누른 키의 ASCII 정수 값
event.x
문서 기준 누른 좌표의 left
event.y 문서 기준 누른 좌표의 top
event.clientX 문서 기준 누른 좌표의 left
event.clientY 문서 기준 누른 좌표의 top
event.screenX 콘테이너 기준 누른 좌표의 left
event.screenY 콘테이너 기준 누른 좌표의 top







■ 브라우저 객체별 이벤트 핸들러




























선택 목록(SELECT)
onBlur, onChange, onFocus
문자 필드(TEXT) onBlur, onChange, onFocus, onSelect
문자 영역(TEXTAREA) onBlur, onChange, onFocus, onSelect
버튼(BUTTON) onClick
체크박스(CHECKBOX) onClick
라디오 버튼(RADID) onClick
링크 onClick, onMouseover
RESET 버튼(RESET) onClick

Name       Pass       Secret Code   Resize  
List
28    [C/C++] [정보보안][정보보안전문가][리눅스]GDB사용법  이상용 2011.05.12 516
27    [보안] 웹 보안 [3] 이상용 2008.05.28 2672
   [자바스크립트] JavasScript 총 정리 [5] 이상용 2007.04.10 1143
25    [리눅스/유닉스] rrdtool 설치 [1] 이상용 2007.02.27 1750
24    [공통] Open Source 패러다임 쉬프트 [146] 이상용 2007.02.27 1222
23    [자바스크립트] Table Row 삭제하기 [74] 이상용 2006.12.01 811
22    [리눅스/유닉스] swatch를 이용해 로그파일을 실시간으로 모니터해 보자. [1] 이상용 2006.08.29 873
21    [리눅스/유닉스] cfengine 을 이용하여 여러대의 시스템관리 자동화 하기 [1] 이상용 2006.08.04 1260
20    [리눅스/유닉스] Content Management Systems (CMS) - OpenSource  이상용 2006.08.04 1859
19    [웹] Web 2.0이란 무엇인가 [1] 이상용 2006.08.02 789
18    [웹] [PHPA] using PHP Accelerator [2] 이상용 2006.02.16 9034
17    [공통] 정규 표현식  이상용 2006.01.05 635
16    [리눅스/유닉스] SELinux ?  이상용 2006.01.04 735
15    [리눅스/유닉스] apache2.0 + tomcat5.x 설치하기 [1] 이상용 2005.11.21 2304
14    [DB] mysql 설치 가이드  이상용 2005.11.20 883
13    [네트웍] Catalyst 4000-L3 Switch 구조와 setting [196] 이상용 2005.11.08 56520
12    [네트웍] 네트워크 진단 명령어(윈도우) [1] 이상용 2005.11.08 1220
11    [네트웍] DNS 운영 자료  이상용 2005.11.08 672
10    [네트웍] Cisco 6509 운영 메뉴얼 [1] 이상용 2005.11.08 4519
9    [리눅스/유닉스] GD 설치해 보자...  이상용 2005.09.29 1656
List   1 [2]  
Copyright 1999-2020 Zeroboard / skin by eggnara