자바스크립트1

자바스크립트(JacaScript)는 웹 브라우저에서 동작되는 스크립트 언어를 말합니다.

HTML 은 정적인 레이아웃을 표현한다면, 자바스크립트는 동적인 기능을 표현합니다.

  1. 자바스크립트는 인터프린터 언어입니다.
    자바스크립트는 코드를 작성한 순서대로 구문을 해석합니다. 만약 코드에 문제가 생기면 에러가 발생한 다음 줄부터 구문을 분석하지 않습니다.
  2. 자바스크립트는 클라이언트 스크립트 언어입니다.
    자바스크립트는 서버에서 실행되지 않고, 사용자 컴퓨터에서 실행되는 클라이언트 언어입니다. 서버에서 운영되는 PHP,JSP, ASP 언어와 비교됩니다.
  3. 자바스크립트는 객체 기반 언어입니다.
    자바스크립트는 객체(기본 기능)를 기반으로 한 언어이며, 다양한 기능들과 종류들이 있습니다.
  4. 자바스크립트는 오픈소스 언어입니다.
    자바스크립트는 소스를 숨길 수 없는 오픈 소스입니다.
  5. 자바스크립트는 다양한 라이브러리가 지원되는 언어입니다.
    자바스크립트를 이용한 언어에는 JQuery가 있습니다. 이를 통해 다양한 기능을 쉽게 구현 할 수 있으며 뛰어난 효과를 만들어 낼 수 있습니다. 이러한 자바스크립트 라이브러리 언어들을 통해 제이쿼리 뿐만 아니라 센차터치, 제이쿼리 모바일, node.js 등 많은 언어를 사용할 수 있습니다.

자바스크립트 사용방법

외부 파일로 로드하는 방법 / 2. script 태그 사이에 기술하는 방법 / 태그에 직접 기술하는 방법


<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>자바스크립트 사용방법</title>

<!--    //외부 파일로 로드하는 방법-->
<script type="text/javascript" src="javascript.ja"></script>

<!--    //script 태그 사이에 기술하는 방법-->
<script type="text/javascript">
document.write("hello world");
</script>

</head>
<body>
<!--  태그에 직접 기술하는 방법-->
<input type="button" onclick="alert('hello)" value="hello">

</body>
</html>

자바스크립트 기초

일반적으로특정 코드에 대한 설명을 입력하거나 특정한 부분의 코드가 실행되지 않도록 사용하는 표시입니다.

/* ..... */ : 여러줄에 주석을 적용하는 경우
// : 한 줄에 주석을 적용하는 경우
< !-- -- > : HTML 주석
/* . . . . */ : css 주석

자바스크립트에서는 의미를 가진 단어들이 있기 때문에 사용자가 임의로 사용할 수 없는 단어들이 있습니다.

키워드(예약어) : 자바스크립트에서 정해진 단어
식별자 : 사용자가 임의로 사용하는 단어

다음의 키워드는 자바스크립에서 사용하기 때문에 사용자가 임의로 사용할 수 없습니다.

break case catch continue debugger default delete do else finally for function if in instanceof new return switch this throw try typeof var void while while with class enum export extends import super implements interface let package private protexted public static yield

사용자는 임의의 식별자를 만들 수 있으며, 다음의 사항을 지켜주어야 합니다.

  • 숫자로 시작하면 안된다.(첫글자)
  • 공백을 주면 안된다.
  • 특수기호를 사용하면 안된다.(-, _ 가능)
  • 키워드를 사용하면 안된다.

두 가지 이상의 단어를 조합할 때는 다음과 같은 방법을 사용합니다.

  • 언더스코어 노테이션 : text_top과 같이 중간에 '_'를 사용합니다.
  • 카멜 노테이션 : textTop과 같이 두번째 단어의 첫 글자를 대문자로 사용합니다.
  • Pascal : TextTop과 같이 모든 단어의 첫 글자를 대문자로 사용합니다.

문자열을 구분하기 위해서는 작은 따음표 또는 큰 따음표를 사용합니다.

변수

변수는 하나의 데이터를 저장하는 저장소입니다.

var 변수명 = 값;
변수

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>sample02</title>
    <script>
        var x = 10;   //변수 x 에 10(숫자)를 저장
        var y = 20;   //변수 y에 20(숫자)를 저장
        var z = "javascipt";  // 문자열은 큰 따음표를 사용할 것 , 변수 z 한테 javascript(문자)를 저장
        y = 100   // 변수 y의 값이  20 에서 200으로 변경

        
        document.write(x); 
        document.write("<br>"); 
        document.write(y);
        document.write("<br>");
        document.write(z);
        document.write("<br>");
        document.write(x+y );
        document.write("<br>")
        document.write(x*y );
    </script>
</head>
<body>
    
</body>
</html>

변수는 사용 가능 범위에 따라 4가지로 구분됩니다.

지역변수 : 특정 범위 안에서만 사용하는 경우
전역변수 : 모든 영역 안에서 사용하는 경우
매개변수(파라미터) : 함수 외부에서 함수 내부로 데이터를 전달하기 위해 사용하는 경우
멤버변수(프로퍼티) : 클래스 내부에 만들어지며 주로 객체에서 사용하는 경우
지역변수/전역변수

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>지역변수/전역변수</title>
<script>
    var x = 100;    //변수(전역) x에 100을 저장
    var y = 200;    //변수(전역) y에 200을 저장

    function area(){
        var x = 300;    //변수(지역) x에 300을 저장
        var z = 500;    //변수(지역) z에 500을 저장

        y = 600;    //변수(전역) y에 값을 200에서 600으로 변경

        document.write("area 함수 안");
        document.write("<br>");
        document.write(x);
        document.write("<br>");
        document.write(y);
        document.write("<br>");
        document.write(z);
        document.write("<br><br>");
    }

    area();     //함수를 실행
    document.write("area 함수 밖");
    document.write("<br>");
    document.write(x);
    document.write("<br>");
    document.write(y);
    document.write("<br>");
    document.write(z);

</script>
</head>
<body>
</body>
</html>

변수는 식별자로만 구분하기 때문에 어떠한 값인지 구분해야 하며, 숫자, 문자열, 불린, 함수, 객체, undefined으로 나눌 수 있습니다.

자료형 설명
숫자(Number) 정수와 실수가 있지만, 자바스크립트에서는 정수와 실수를 구분하지 않는다.
문자열(String) "문자", "string" 처럼 따옴표를 사용한 문자의 집합을 문자열이라고 한다.
논리(Boolean) 참과 거짓을 나타내는 자료형이며, 오직 true, false로만 표현을 합니다.
특수값(undefined)) 변수 선언시 자료형의 지정이 이루어지지 않거나, 어떤 잘형인지 알 수가 없을 경우에 undefinde라고 표시
배열(array) 배열 형태의 자료형도 자바스크립트에서 사용 가능
객체(object) 객체 형태의 자료형도 자바스크립트에서 사용 가능
함수 (Function) function은 자바스크립트를 구성하는 기본단위로, 자료형으로 변수에 넣을 수 있다.

배열

배열은 여러개의 데이터를 순차적으로 저장하는 저장소입니다.
var 변수명 = [값1, 값2, 값3, .....];

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>배열</title>
<script>
    //배열 선언
    var arr1 = new Array();
        arr1[0] =100;
        arr1[1] =200;
    document.write(arr1[0], "<br>");
    document.write(arr1[1],  "<br>");
    document.write(++arr1[1],  "<br><br>");

    //배열 선언과 동시에 초기화하기.
    var arr2=new Array(100, 200,300);
    document.write(arr2[0], "<br>");
    document.write(arr2[1],  "<br>");
     document.write(arr2[2],  "<br>");
    document.write(arr1[0]*arr2[1]*arr2[2], "<br>");

    //배열의 크기 구하기
    var arr3=new Array(100,200,300,400,500);

   //for문을 이용한 배열의 합 구하기
    var arr4=new Array(100,200,300,400,500,600,700,800,900,1000);
    var sum=0;

    for(var i=0; i<arr4.length; i++){
        sum+=arr4[i] //      sum+=sum+arr4[i]

    }
    document.write(sum);

</script>
</head>
<body>
</body>
</html>

연산자

산술 연산자

산술 연산자는 사칙 연산을 수행
연산자 예시 설명
+ x+y 더하기
- x-y 빼기
* x*y 곱하기
/ x/y 나누기

복합 연산자

복합 연산자는 사칙연산을 간결하게 표현할 때 사용합니다.
연산자 예시 설명
+= x=x+10 x+=10
-= x=x-10 x-=10
*= x=x*10 x*=10
/= x=x/10 x/=10

증감 연산자

증가 연산자는 1만큼 증가시키고, 감소 연산자는 1만큼 감소 시킨다.
연산자 예시 설명
++ x=x+1 x++ or ++x
-- x=x-1 x-- or --x

비교 연산자

두 개의 값을 비교하여 결과를 참 또는 거짓으로 나타냄
연산자 예시 설명
== x=y 좌변과 우변의 값이 같은 경우 true 반환
=== x===y 좌변과 우변의 값이 같거나 데이터형도 같은 경우 true
!= x!=y 좌변과 우변이 값이 같지 않은 경우 true
!== x!==y 좌변과 우변이 값이 같지 않은 경우, 또는 데이터형이 다른 경우 true
< x < y 좌변이 우변보다 클 경우 true
> x > y 좌변이 우변보다 작을 경우 true
<= x<=y 좌변이 우변보다 크거나 같을 경우 true
>= x >=y 좌변이 우변보다 작거나 같을 경우 true

논리 연산자

참/거짓으로 나타나는 boolean 값을 조합해서 논리 연산을 수행
연산자 예시 설명
&& x && y (And) 둘다 true인 경우 true
|| x || y (OR) 둘 중 하나 이상이 true 이면 true
! !x (NOT) 식이 false 인 경우 true

연산자 우선순위

모든 연산자의 우선순위
연산자 예시 설명
1 () [] 괄호/대괄호
2 ! ~ ++ -- 부정/증감연산자
3 * / % 곱셈/나눔셈 연산자
4 + - 덧셈/뺄셈 연산자
5 << >> >>> 비트 단위의 시프트 연산자
6 > > >= >= 관계 연산자
7 == != === !== 관계 연산자
8 & 비트 단위 논니 곱 연산자
9 | 비트 단위 논니 부정 연산자
10 ^ 비트 단위 논니 합 연산자
11 && 논리 곱 연산자
12 || 논리 합 연산자
13 ?: 조건부 연산자
14 = += -= *= /= %= <<= >>= >>>= &= ^= |= 대입/할당 연산자
15 , 쉼표

조건문

조건문은 말 그대로 조건에 맞으면 실행하고, 맞지 않으면 다른 코드를 실행하도록 조건을 거는 제어문
if문 단독으로 사용하는 혜택

if(조건){
       //실행코드
}

if
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>if</title>
<script>
    var x = 100;

    if(x % 2 == 0 ){
        document.write("짝수")
    }

    var value = window.prompt("숫자를 입력해주세요");
    if(value % 2 == 0) {
        alert("짝수")
    } 
</script>
</head>
<body>
</body>
</html>
두 개의 값을 비교하여 코드를 별개로 실행합니다.

if(조건){
      //참일 때 실행코드
} else {
      //거짓일 때 실행 코드
}

if ~ else
 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>if-else</title>
 <script>
     var x=100;

     if(x % 2==0){
         document.write("짝수")
     } else {
         document.write("홀수 ")
     }

    var value = window.prompt("숫자입력");
     if(value % 2 == 0) {
       alert("짝수")
    } else {
       alert("홀수")
   }

     var useID = window.prompt("아이디");
     var usePW = window.prompt("패스워드");

     if(useID == "BYC" && usePW=="1234" ){
         alert ("로그인 성공")
     } else {
         alert ("아이디 또는 비밀번호가 틀렸습니다.")
     }
     </script>
</head>
<body>
</body>
</html>
여러가지 조건에 따라 조건문을 설정합니다.

if(조건){
      //참일 때 실행코드
} else if {
      //앞 조건이 거짓일 때 실행 코드
} else if {
      //앞 조건이 거짓일 때 실행 코드
} else if {
      //앞 조건이 거짓일 때 실행 코드
} else {
      //앞의 모든 조건이 거짓일 때 실행 코드
}

다중 if문
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>다중 if문1</title>
 <script>
    var x =100;
     
     if(x==90){
         document.write("x의 숫자는 90입니다")
     } else if(x==95) {
         document.write("x의 숫자는 95입니다")
     } else {
         document.write("x의 숫자는"+x+"입니다")
     }
     
     var userID=window.prompt ("아이디를 입력해주세요");
     var userPW=window.prompt ("패스워드를 입력해주세요");
             if(userID == "yeommi" & & userPW == "1234"){
            alert("환영합니다.");
        }  else if (userID == "yeommi"){
            alert("패스워드가 틀렸습니다.");
        }  else  {
            alert("틀렸습니다.");
        }
    </script>
</head>
<body>
</body>
</html>

switch (조건을 체크할 변수){
     case 값1:
         //조건을 체크할 변수가 값1을 가지면 실행
     break;

     case 값2:
         //조건을 체크할 변수가 값2을 가지면 실행
     break;

     case 값3:
         //조건을 체크할 변수가 값3을 가지면 실행
     break;

     case 값4:
         //조건을 체크할 변수가 값4을 가지면 실행
     break;

     default:
         //해당되는 값을 가지고 있는 않을 경우 실행
     break;
}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Switch</title>
    <script>
     var color =window.prompt ("빨강, 파랑, 노랑, 검정,  흰색 중 가장 좋아하는 색을 고르시오")
     
     switch(color){
         case "빨강" : 
                document.write("당신은 빨갱이");
             break;
             
         case "파랑" :
                document.write("당신은 파랑새");
                break;
                 
        case "노랑" :
                document.write ("당신은 노랑이")
                break;
              case "노랑색" :
                document.write ("당신은 노랑이")
                break;
             
         case "검정":
                document.write ("당신은 흑염룡")
               break;
             
             default :
                document.write ("귀차니즘 오져~")
             break;
                 }       
    </script>
</head>
<body>
    
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>switch2</title>
    <script>
     var site=window.prompt ("네이버, 다음, 구글, 네이트 중 자주 가는 사이트?")
     var url;
        
        switch(site){
            case "네이버":
                url = "www.naver.com"

                break;
            case "다음":
                url="www.daum.net"

                break;
            case "구글":
                url="www.google.com"

                break;
            case "네이트":
                url="www.nate.com"

                break;
            default :
                document.write("ㄴㄴ")
                break;           
       }
      var openNewWindow=window.open("about:blank")
        if(url) {
            openNewWindow.location.href="http://"+url;
        }
    </script>
</head>
<body>
    
</body>
</html>
 

조건부 연산자는 조건을 처리하는 다른 형태의 제어문

(조건) ? (참일 때 실행하는 코드) : (거짓일 때 실행하는 코드 )
조건문 연산자
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>조건부 연산자</title>
    <script>     
//        var value = window.prompt("숫자를 입력해주세요");
//        value = parseInt(value);            
//        if(value % 2 ==0 ) {
//            alert ("짝수입니다");
//        } else {
//            alert("홀수입니다")
//        }
        
        //조건 연산자
        var value2 = window.prompt("숫자를 입력해주세요");
        value2=parseInt(value2);     // 숫자로 인식할 수 있도록 형 변환 parse : 분석하다  integer:정수
        (value2 % 2==0) ? alert("짝수입니다") : alert ("홀수입니다")   
    </script>
</head>
<body>
    
</body>
</html>

반복문

반복되는 부분을 실행할 때 사용하는 제어문입니다.

var 변수 = 초기합
while(조건식){
     실행문;
     증감문;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>while문</title>
    <script>
      /*   var count = 0;
        
       while(true){
            count++; 
            document.write(count+"번째 실행");
            document.write("<br>");
            
            if(count>20){
                break;
            }
        } */
        
        for(var count=0; count<10; count++){
            document.write(count+"번째 실행");
            document.write("<br>");
        }
    </script>

</head>
<body>
    
</body>
</html>
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>while문</title>
    <script>
//100보다 작은 숫자에서 4의 배수 6의 배수를 출력하기
//초기값 설정
var i =1;

while(i < 100){     //i가 100보다 작거나 같을 때까지 반복 실행합니다.
if(i % 4 == 0 && i % 6==0){
document.write(i,"< br< ")
}
i++;

}
    </script>

</head>
<body>
    
</body>
</html>
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>while문</title>
    <script>
//100보다 작은 숫자에서 짝수만 파란색, 홀수는 빨간색 출력하기

var i = 100
while(i>0){
if(i % 2== 0){
document.write("<span style='color:blue'>"+i+"</span>","<br>");
} else {
document.write("<span style='color:red'>"+i+"</span>","<br>");
}
i--;
}
    </script>

</head>
<body>
    
</body>
</html>

while 문의 경우에는 조건식의 만족 여부를 먼저 검사한 후, 증괄호에 있는 실행문의 여부를 결정합니다. 하지만 do while문은 반드시 한 번은 실행문을 실행하고 조건식을 검사합니다.

var 변수 = 초기값
do {
    실행문;
    증감식;
}while(조건식)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>while문</title>
    <script>
        var count=0;
        do{
        count++;
        document.write(count+"<br>");
        } while(count<9);
            </script>

</head>
<body>
    
</body>
</html>

for 문은 특정 구문을 여러번 반복하고 싶을 때 사용하는 반복문입니다.

for(초기값; 조건식; 증감값){
     //반복코드
}

0~100까지 반복을 한다면, 다음과 같이 표현합니다.

for(var i=0'i <100; 1++){
     //반복코드
}
초기값 설정 : var i=0 초기 시작 값을 0으로 설정하고, 초기값은 오직 한 번만 실행되면 이후로는 실행되지 않습니다.
조거식 설정 : i<100; 조건에 맞으면 실행합니다.
증감값 설정 : i++; 조건에 맞으면 1씩 증가됩니다.

for문

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>for문</title>
    <script>
 //0~100까지 출력
for(i=0; i< = i++){
document.write(i+"<br>")
} 

//1~100까지 출력
for(i=1; i%< =100; i++){
document.write(i+"<br< ")
} 

//1~100까지 짝수만 출력
for(i=2; i< 100; i+=2){
document.write("숫자"+i,"< br< ");
}

//1~100까지 홀수만 출력
for(i=1; i< i+=2){
document.write("숫자"+i,"< br<");
}
</script>

</head>
<body>
    
</body>
</html>

for문2(5의 배수는 파란색, 7의 배수는 빨간색, 5와7의 배수는 검은색 출력)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>for문</title>
    <script>
//1~100까지 출력
for(var i=1; i< =100; i++){
//5의 배수는 파란색, 7의 배수는 빨간색, 5와 7의 배수는 검은색 출력하기


if(i%5==0 && i%7!==0){   //5의 배수이고 7의 배수가 아닌 경우
document.write( "<span style='color:blue'>"+i+"<span>","<br>")

} else if(i%7 == 0 &&i%5!==0){
document.write("<span style='color:red'>"+i+"<span>","<br>")
}
else if (i%5==0 && i%7==0){
document.write("<span style='color:black'>"+i+"<span>","<br>")
}
}
</script>

</head>
<body>
    
</body>
</html>

for문 ( for문을 이용한 배열의 합 만들기)


    <script>
         var arr=new Array(100,200,300,400,500,600,700,800);
        var sum=0;
        
        for(var i=0; i< arr.length; i++){
            sum = sum + arr[i];
        }
        document.write(sum);
 </script>

</head>
<body>
</body>
</html>

for문 안에 for문이 있는 형태

for(var i=0; i<100; i++){
   for(var j=0; j<100; j++){
     //실행코드
}

구구단


    <script>
for(var i=0; i<8; i++){
for (var j=0; j < 9; j++){
var num1=i+2;
var num2=j+1;
var sum=num1 * num2;
document.write(num1+'x'+num2+'='+sum+'<br>');
}
}
</script>

</head>
<body>
</body>
</html>

표만들기


    <script>
var num=1;        
var t="<table border='1'>";   //테이블 시작태그

for(var i=1; i<=10; i++){
t += "<tr>";
for(var k=1; k<=10; k++){
    t +="<td>" + num + "</td>";
    num++;
}
t+="</tr>";
}

t +="</table>";
document.write(t);
</script>

</head>
<body>
</body>
</html>
        

break문과 continue문은 반복문을 제어하는 명령어 입니다.

break문 : 코드 실행문을 빠져나갈 때 사용, 일반적으로 반복문을 종료할 때 사용
continue문 : 코드 실행중에 continue을 만나면, 뒷 부분은 실행하지 않고 다음 반복 시퀀스로 넘어갑니다.

break문 Continue문

<script type="text/javascript">
var count=0;
while(true){
count++;
if(count == 3){
continue;
}
document.write(count,"<br>");
if(count>9){
break;
}
}
</script>

함수

함수는 하나의 실행문을 저장하여 사용할 수 있다

함수는 하나의 실행문을 저장하고 변수는 하나의 데이터를 저장하여 사용. 함수는 스트립트 실행문을 보관하는 역할을 하기 때문에 반복 사용되는 코드를 구조화하거나 재활용을 목적으로 사용

함수를 사용하는 이유
<script type="text/javascript">
 for(i=1; i<=100; i++){
document.write(i+"."+" 블랙입니다"+"<br>");
} 

for(i=1; i<=100; i++){
document.write(i+"."+"블루입니다."+"<br>")
} 


function Show(name){
 for(i=1; i<=10; i++){
    document.write(i+"."+ name +"입니다."+"<br>");
}
Show('블루');
</script>

함수는 사용 형태에 따라 익명함수, 선언적 함수, 매개변수가 있는 함수, 리턴값이 있는 함수로 구분

선언적 함수

 <script type="text/javascript">
//선언적 함수 : 일반적인 함수의 형태, 함수 이름을 설정하고 함수를 호출 해야 한다.
function fun1(a){
document.write("fun1 실행되었습니다.");
document.write("<br>")
}

fun1();
fun1();

//익명함수 : 변수 안에 함수가 들어간 형태로 함수의 이름이 존재하지 않아 익명함수라고 함
var fun2 = function(){
    document.write("fun2 실행되었습니다.");
    document.write("<br>")
}

fun2 ();
fun2 ();


//매개변수가 있는 함수 : 함수 외부에서 함수 내부로 데이터를 전달하기 위해 사용하는 경우
function fun3(name){
    document.write( name+"이 실행되었습니다")
    document.write("<br>")
}

fun3("fun3");
fun3("fun3");

//리턴값이 있는 함수
function fun4(){
    var now= new Date();  // 현재 시간을 구해오는 객체 데이터
    var hour = now.getHours();  // 구해온 시간에서 시(hour)를 변수에 할당
    return hour;
}

var value =fun4();
document.write (value);
</script>

객체

객체는 데이터와 연산작업을 담고 있는 기본적인 자바스크립트 기능

객체가 가지고 있는 기본 상태 값을 속성이라 하고, 객체가 할 수 있는 행동들을 메서드라고 한다. 객체는 내장 객ㅊ, 브라우저 객체, 문서 객체가 있다.

속성 : 객체가 가지고 있는 기본적인 상태 값 및 속성(ex: color, width)
매서드 : 객체가 할 수 있는 동작 및 행도 (ex; color 색을 변경, width 값을 변경)

문서 객체 모델(Documnet Object Model)은 자바스크립트를 통해 브라우저에서 동작하는 형태를 접근하는 방식. 좁은 의미로는 documnent 객체와 관련된 객체의 집합

브라우저 객체 모델(Browser Object Model)은 웹 브라우저와 관련된 객체의 집합을 의미

브라우저 위치

<script type="text/javascript">
 var x = window.screenX;
var y = window.screenY;

alert("현재 브라우저의 좌표값은:"+x+","+y);   //팝업을 만들 때 사용한다.
</script>

콘텐츠 영역 크기

<script type="text/javascript">
var x = window.innerWidth
var y = window.innerHeight

alert("현재 콘텐츠 영역의 크기:"+x+","+y)
</script>

타이머 설정

<script type="text/javascript">
//setInterval()  : 지정한 시간마다 함수를 실행  <--> ClearInterbal()
//setTimeOut()  : 지정한 시간 후 한번만 실행 <-> ClearTimeOut ()

function func(){
document.write("setInterval이 실행되었습니다."+"<br>");
}
setInterval(func, 1000)   // func를 1000 마다 실행한다
</script>
브라우저 속성 알아내기
<script type="text/javascript">
document.write("appCodeName: "+navigator.appCodeName,"
"); document.write("appName: "+navigator.appName,"
"); document.write("appVersion: "+navigator.appVersion,"
"); document.write("language: "+navigator.language,"
"); document.write("product: "+navigator.product,"
"); document.write("platform: "+navigator.platform,"
"); document.write("userAgent: "+navigator.userAgent,"
"); </script>
운영체제 및 스크린 정보 알아내기
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>자바스크립트(JavaScript)</title>
<script type="text/javascript">
    function info1(){
          /* 브라우저 및 운영체제 종합정보를 반환후 모두 소문자로 바꿉니다.*/
          var os=navigator.userAgent.toLowerCase();

          /*요소 중 id의 값이 "info_wrap"은 요소 객체를 가져옵니다.*/
          var info_wrap=document.getElementById("info_wrap");

          /*navigator객체를 이용해 반환받은 정보에 다음과 같은 문자가 포함되어 있으면  운영체제 명을 지정한 요소 사이에 텍스트로 출력합니다.*/
          if(os.indexOf('windows')>=0){
             info_wrap.innerHTML="윈도우";
          }else if(os.indexOf('macintosh')>=0){
             info_wrap.innerHTML="메킨토시";
          }else if(os.indexOf('iphone')>=0){
             info_wrap.innerHTML="아이폰";
          }else if(os.indexOf('android')>=0){
             info_wrap.innerHTML="안드로이드";
          }
    }
    function info2(){
          /*스크린 너비와 높이 값을 가져와 각각의 변수에 저장합니다.*/
          var sc_w=screen.width;
          var sc_h=screen.height;

          /*요소 중 id의 값이 "info_wrap"은 요소 객체를 가져옵니다.*/      
          var info_wrap=document.getElementById("info_wrap");

          /*스크린 너비와 높이 값을 지정한 요소에 텍스트로 출력합니다. */
          info_wrap.innerHTML=sc_w+"X"+sc_h;

          //3초 후에 스크린 정보를 지웁니다.
          //setTimeout("info_wrap.innerHTML=''",3000); 
    }	
</script>
</head>

<body>
<h1>운영체제 및 스크린 정보</h1>
<p id="info_wrap"></p>
<button onclick="info1();">운영체제 정보</button> <br />
<button onclick="info2();">스크린 정보</button> <br />
</body>
</html>

화면 크기 알아내기

history 객체

location 객체

내장 객체

자바스크립트 자체에서 제공하는 객체. (ex Array, Data)