HTML 언어에 부가되어 웹페이지를 좀더 동적이고 다양하게 제작할 수 있는 기법을 제공하는 스크립트 언어이다.
HTML 소스코드 안에 포함되어 있기 때문에 소스가 노출되며, JAVA, C 언어 같은 강력한 기능(직접 DB 연동 기능 등)의 프로그램을 만들 수 없다.
여러 회사가 자바스크립트를 조금씩 다른 방향으로 구현해서 브라우저 마다 다른 이름의 자바스크립트를 사용하고 있다.
웹브라우저 | 자바스크립트명 |
---|---|
Mozilla Firefox | JavaScript |
Google Chrome | |
Apple Safari | |
Adobe Acrobat | |
Internet Explorer | JScript |
Opera | ECMAScript |
.NET | JScript.NET |
Adobe Flash & Adobe Flex | ActionScript |
»<script language="JavaScript버전번호">
⇒ 웹브라우저가 자바스크립트 버전을 지원하지 않으면 실행되지 않게 한다.
<!-- ⁄ ⁄-->
⇒ 웹브라우저가 자바스크립트 자체를 지원하지 않으면 코드를 주석(설명이나 소스코드 숨길때도 사용함)처리해준다.
» 대부분의 웹브라우저가 자바스크립트를 지원하므로 설정을 생략해 쓴다.
JAVA SCRIPT 프로그램을 독립된 파일로 만들 경우 확장자는 js로 저장하고 html 파일에 위에처럼 수입해 삽입한다.
자료형 종류 | 설명 |
---|---|
숫자형 |
|
문자형 |
|
boolean형 |
|
undefined형 |
|
함수형 |
|
객체형 |
|
1. 기본형 : byte, short, cror, int, long, floot, double, boolean
2. 참조형 : 객체의 메모리 위치주소 값
전역변수 |
|
---|---|
지역변수 |
|
매개변수 |
|
프로그램에 있는 자료들을 처리하기 위한 각종 기호를 의미
연산자 기호 | 의미 | 사용 예 | 결과 |
---|---|---|---|
+ | 더하기 | 3+5 | 8 |
- | 빼기 | 6-2 | 4 |
* | 곱하기 | 4*8 | 32 |
/ | 나누기 | 8/2 | 4 |
% | 나머지 | 7%3 | 1 |
증감연산자 | 의미 | 사용 예 | 결과 |
---|---|---|---|
++ | 1씩 증가 |
var num1 = 5; num1++; |
->변수 num1 선언 후 5 저장 ->num1에 1증가 |
var num1 = 5; ++num1; |
->변수 num1 선언 후 5 저장 ->num1에 1증가 |
||
var num1 = 5; var num2 = ++num1; |
->변수 num1 선언 후 5 저장 ->num1에 1증가 후 num2에 변수 num1의 값 6을 저장 |
||
var num1 = 5; var num2 = num1++; |
->변수 num1 선언 후 5 저장 ->num2에 변수 num1의 값 5를 저장후 num1에 1증가. |
||
var num1 = 5; document.write(num1++); |
->변수 num1 선언 후 5 저장 ->num1 변수 데이터 5출력 후 num1 에 1증가. |
||
var num1 = 5; document.write(++num1); |
->변수 num1 선언 후 5 저장 ->num1 에 1증가 후 num1 변수 데이터 6출력 |
||
-- | 1씩 감소 |
var num1 = 5; num--; |
->변수 num1 선언 후 5 저장 ->num1에 1감소 |
var num1 = 5; --num; |
->변수 num1 선언 후 5 저장 ->>num1에 1감소 |
||
var num1 = 5; var num2 = --num1; |
->변수 num1 선언 후 5 저장 ->num1에 1감소 후 num2에 변수 num1의 값 4를 저장 |
||
var num1 = 5; var num2 = num1--; |
->변수 num1 선언 후 5 저장 ->num2 에 변수 num1의값 5를 저장후 num1에 1감소 |
||
var num1 = 5; document.write(num1--); |
->변수 num1 선언 후 5 저장 ->num1 변수 데이터 5출력 후 num1 에 1감소 |
||
var num1 = 5; document.write(--num1); |
->변수 num1 선언 후 5 저장 ->num1 에 1감소 후 num1 변수 데이터 4출력 |
비교연산자 | 의미 | 사용 예 | 결과 |
---|---|---|---|
== |
좌우가 같으면 true 리턴 ※ 다른 유형의 데이터를 비교할 경우 형변환이 일어남. |
var avg = 80; var result = avg==80; |
result에 true 저장 |
var avg = 80; var result = avg=="80"; |
result에 true 저장 | ||
!= | 좌우가 같지 않으면 true 리턴 |
var avg = 80; var result = avg!=83; |
result에 true 저장 |
> | 왼쪽이 크면 true 리턴 |
var avg = 80; var result = avg>100; |
result에 false 저장 |
< | 오른쪽이 크면 true 리턴 |
var avg = 80; var result = avg<80; |
result에 false 저장 |
>= | 왼쪽이 크거나 같으면 true 리턴 |
var avg = 80; var result = avg>=80; |
result에 true 저장 |
<= | 오른쪽이 크거나 같으면 true 리턴 |
var avg = 80; var result = avg<=80; |
result에 true 저장 |
=== |
좌우가 같으면 true 리턴(자료형 까지 같아야만 true) ※ 다른 유형의 데이터를 비교할 경우 무조건 false 리턴. |
var avg = 80; var result = avg===80; |
result에 true 저장 |
var avg = 80; var result = avg==="80"; |
result에 false 저장 |
종류 | 의미 | 사용 예 | 결과 |
---|---|---|---|
&& |
좌우 모두 true 경우 true 리턴, 외 경우 false 리턴. false 리턴 시 이후 남아있는 연산은 안함. |
var kor = 85, eng = 70; var result = kor>=80 && eng >=80; |
result에 false 저장 |
var kor = 85, eng = 70; var result = eng>=80 && kor >=80; |
result에 false 저장 | ||
& |
좌우 모두 true 경우 true 리턴, 외 경우 false 리턴. 무조건 모두 연산 |
var kor = 85, eng = 70; var result = kor>=80 & eng >=80; |
result에 false 저장 |
var kor = 85, eng = 70; var result = eng>=80 & kor >=80; |
result에 false 저장 | ||
|| |
좌우 중 하나 이상 true 경우 true 리턴 true 리턴 시 이후 남아있는 연산은 안함. |
var kor = 85, eng = 70; var result = kor>=80 || eng >=80; |
result에 true 저장 |
var kor = 85, eng = 70; var result = eng>=80 || kor >=80; |
result에 true 저장 | ||
| |
좌우 중 하나 이상 true 경우 true 리턴 무조건 모두 연산 |
var kor = 85, eng = 70; var result = kor>=80 | eng >=80; |
result에 true 저장 |
var kor = 85, eng = 70; var result = eng>=80 | kor >=80; |
result에 true 저장 | ||
! | 우측이 true 몉 false 리턴, false 면 true 리턴 |
var kor = 85, eng = 70; var result = !(kor>=80 && eng >=80); |
result에 true 저장 |
종류 | 의미 | 사용 예 |
---|---|---|
var 변수 = 조건식? 데이터1:데이터2 | 조건식이 true 일 경우 데이터 1 리턴, 아니면 데이터2 리턴 |
var avg = 80; var result = (avg>=80) ? "합격":"불합격"; |
if 문 형식 | 설명 |
---|---|
if(조건식1){ 실행구문; } |
|
if(조건식1){ 실행구문1; } else if(조건식2){ 실행구문2; } ....... else if(조건식n){ 실행구문n; } |
|
if(조건식1){ 실행구문1; } else if(조건식2){ 실행구문2; } ....... else if(조건식n){ 실행구문n; } else{ 실행구문n+1; } |
|
switch 문 형식 | 설명 |
---|---|
switch (변수){ case 데이터1 : 실행구문1; } |
|
switch (변수){ case 데이터1 : 실행구문1;break; case 데이터2 : 실행구문2;break; .......... case 데이터n : 실행구문n;break; } |
|
switch (변수){ case 데이터1 : 실행구문1;break; case 데이터2 : 실행구문2;break; .......... case 데이터n : 실행구문n;break; default : 실행구문n+1; } |
|
반복문 종류 | 형식 | 실행순서 |
---|---|---|
for 문 |
for(초기값설정 ; 조건식 ; 증감식){ 실행구문; } |
|
while 문 |
while(조건식){ 실행구문; } |
|
do~while 문 | do{ 실행구문; }while(조건식) |
|
[for 문] 특징
[while 문] 특징
[do while] 특정
분기문 종류 | 설명 |
---|---|
break |
|
continue |
|
break
형식
for( 초기값설정 ; 조건식 ; 증감식 ) {
~
if( 조건식2 ) { break; }
실행구문2;
}
실행구문3;
[조건식2]가 false면 계속 반복 진행..
[조건식2]가 true면 break 실행으로 [실행구문2] 실행 않고 반복문 탈출해서 [실행구문3] 실행.
continue
형식
for( 초기값설정 ; 조건식 ; 증감식 ) {
~
if( 조건식2 ) { continue; }
실행구문2;
}
실행구문3;
[조건식2]가 false면 계속 반복 진행..
[조건식2]가 true면 continue 실행으로 [실행구문2] 실행 않고 바로 증감식으로 이동.
함수 종류 | 설명 |
---|---|
정적함수(선언적 함수) |
|
익명 함수 |
|
내장 함수 |
|
사용자 정의 함수 |
|
내부 함수 |
|
콜백 함수 |
|
정적 함수 | 익명 함수 | |
---|---|---|
선언 형식 |
function 함수명1( [매개변수1, ~, 매개변수n]) { |
var 변수명1 = function 함수명1( [매개변수1, ~, 매개변수n]) { |
함수호출 형식 |
|
|
함수호출 시점 |
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
전역변수 |
|
---|---|
지역변수 |
|
매개변수 |
|
내부 함수 형식
<주의>[내부 함수]와 [외부 함수] 이름이 같을 경우 [부모 함수] 안에서 [내부 함수]를 호출 할 때 [내부 함수]가 우선 호출된다.
콜백 함수 호출 형식
형식1 | 형식2 |
---|---|
var 변수명 1 = function ( ~ ) { |
함수명1( function( ~ ){ ~ } ); |
자바스크립트 자체에서 미리 만들어져 제공하는 함수를 말한다. ※ 자스 = 자바스크립트
내장함수 종류 | 기능 |
---|---|
eval( 문자열 ) |
|
parseInt( 숫자문자, 10 ) |
|
isNaN( 데이터 ) |
|
alert( 문자열 ) |
|
conflrm( 문자열 ) |
|
prompt( 문자열 ) |
|
Number( 데이터 ) |
|
typeof( 데이터 ) |
|
isFinite( 숫자 ) |
|
setTimeout( "자스코딩", n초x1000) 시한폭탄 |
|
setInterval( "자스코딩", n초x1000) 정해진시간마다 반복실행 |
|
clearTimeout( id ) |
|
clearInterval( id ) |
|
내장 객체의 객체 생성, 속성/메소드 호출 형식
형식1 | 형식2 | 형식3 | |
---|---|---|---|
<1>객체 생성 | var 객체참조변수 = new 내장객체명( ~ ); |
||
<2>메소드 호출 | 객체참조변수.메소드(~) | 제공객체참조변수.메소드(~) |
내장객체명.메소드(~) |
<2>송성변수 호출 | 객체참조변수.속성변수 | 제공객체참조변수.속성변수 |
내장객체명.속성변수 |
속성변수는 데이터를 취득하거나 데이터를 셋팅한다.
객체 생성, 메소드 호출, 속성변수 호출 방법
1차원 Array 객체 | 2차원 Array 객체 | |
---|---|---|
객체 생성 | 객참변수 = new Array( 데이터1, ~, 데이터n ); |
var 객참변수 = new Array( new Array(데이터1, ~, 데이터n), ~, new Array(데이터1, ~, 데이터n) ); |
객참변수 = new Array(); 객참변수.push( 데이터1 ); ~ 객참변수.push( 데이터n ); |
var 객참변수 = new Array( [데이터1, ~, 데이터n], ~, [데이터1, ~, 데이터n] ); |
|
객참변수 = [ 데이터1, ~, 데이터n ]; |
var 객참변수 = new Array(); 객참변수.push( new Array(데이터1, ~, 데이터n) ); ~ 객참변수.push( new Array(데이터1, ~, 데이터n) ); |
|
객참변수 = [ ]; 객참변수.push( 데이터1 ); ~ 객참변수.push( 데이터n ); |
var 객참변수 = new Array(); 객참변수.push([데이터1, ~, 데이터n]); ~ 객참변수.push([데이터1, ~, 데이터n]); |
|
var 객참변수 = [ [데이터1, ~, 데이터n], ~, [데이터1, ~, 데이터n] ] |
||
메소드 호출 | 객참변수.메소드(~) | |
속성변수 호출 | 객참변수.속성변수 |
<주의>var 객체참조변수 = new Array(정수 );
메소드, 속성변수
속성변수 | ||
---|---|---|
메소드 | ||
< 1차원 Array 객체의 상상도>
19페이지
< 2차원 Array 객체의 상상도>