본문 바로가기
국비 과정/JavaScript

국비 - 0921 ( Javascript 의 객체와 배열 )

by 코딩호야 2022. 9. 21.

* Javascript 의 객체와 배열

실세계의 객체들을 다룰수 있도록 자바스크립트에 객체 개념이 도입되었다.
객체의 고유한 속성을 property 라고 부르며 객체는 여러 property 와 값의
쌍으로 표현된다. 또한 객체는 여러개의 함수를 가질수 있는데 함수를 method
라고 부른다. 메서드는 다른 객체나 코드로 부터 호출되며 , 주로 객체 내부의 프로퍼티 값을
조작하거나 연산을 수행하고 결과를 리턴한다.

* 자바 스크립트 객체유형

개발자가 자바스크립트 코드로 객체를 만들어 사용할수 있지만
브라우저는 많은 자바스크립트 객체를 만들어 제공하므로 이들을
사용하기만 하면 된다. 브라우져가 제공하는 자바스크립트 객체는 다음의
3가지 유형으로 나뉜다.

. 코어객체 : 기본 객체로서 Array , Date , String , Math 타입등이 있으며 , 
            웹 페이지나 , 웹 서버 응용프로그램 어디서나 사용할수 있다.

. HTML DOM 객체 : HTML 페이지에 작성된 HTML 태그들을 브라우져가 하나씩 객체화 한(DOM : Document Object Model)
                    것들로 HTML 페이지의 내용과 모양을 제어하기 위해 사용되는 객체들이다.

. 브라우져 관련 객체 : 브라우저의 종류나 , 스크린의 크기정보를 제공하거나 새 윈도우를 생성하는
                        등 브라우져와 관련된 객체들로 BOM(Browser Object Model) 이라고 부른다

* 코어 객체 종류

코어 객체들은 자바 스크립트 언어가 실행되는 어디서나 사용가능한 객체들로서 여러 타입이 있다.

코어 객체의 생성은 항상 new 키워드를 사용한다

    var today = new Date();

    var msg = new String("Hello");

    여기서 today, msg 는 생성된 객체를 가르키는 레퍼런스 변수이다. 이것을 객체라고 부른다.


* 객체의 접근

객체가 생성되면 객체 내부에는 프로퍼티와 메서드가 존재하며 이들은 점(.) 연산자를 이용하여 접근한다.

obj.프로퍼티 = 값;   => 객체 obj 의 프로퍼티 값 변경
변수 = obj.프로퍼티; => 객체 obj 의 프로퍼티값 알아내기 , 변수에 대입
obj.메서드(매개변수,,,,); => 객체 obj 의 메서드 호출


. Array 

 배열 : 배열은 여러개의 원소들을 연속적으로 저장하고
 전체를 하나의 단위로 다루는 데이터 구조이다.
 배열의 각원소는 [ ] 기호와 0에서 시작하는 
 인덱스를 이용하여 접근한다.

. 배열 만드는 방법
 1. [ ] 로 배열 만들기
 2. Array 객체로 배열 만들기

 만드는 방법은 다르지만 일단 배열이 생성되면 사용하는 방법은 같다.

 var week = ["월","화","수","목","금","토","일"] ;
 var plots = [-20 , -5 , 0 , 15 , 20] ;

 week[6] = "Sunday"; => week[6] 의 값을 "일" 에서 "Sunday"로 변경
 var p = plots[1]; => p 는 -5

 

<body>
    <h3>[] 로 배열 만들기</h3>
    <hr>
    <script>
        var plots = [20,5,8,15,20]; //원소 5개의 배열

        document.write("var plots = [20,5,8,15,20]<br>");

        plots[8] = 13;
        // 인덱스 8 에 13값을 넣는다는 의미이다 . 
        // 이런식으로 배열을 건너뛰면 그사이 배열은 undefined 로 출력된다.



        for(i=0;i<plots.length;i++){    // 5 대신 plots.length 해도됨
            var size = plots[i]         // plots 배열의 i 번째 원소
            while(size>0){
                document.write("*");
                size--;
            }
            document.write(" : "+ plots[i] + "<br>");

        }
        
    </script>
    
</body>

위의 html 를 출력한 것  

plots [ 8 ] 에 13을 넣었을때 중간에 plots[ 5 ] ,plots[ 6 ] , plots[ 7 ] 이 비어있지만 undefined 로 채워진채로 출력된다. 에러가 생성되지 않음



 . 배열 크기와 원소 추가

    배열은 처음 만들어진 크기로 고정되지않고 , 원소를 추가하면 늘어 난다.
    
    plots[5] = 33;
    plots[6] = 77;

. Array 로 배열 만들기

    자바 스크립트의 코어 객체인 Array 를 이용하여 배열을 생성할수 있으며 앞의
    week 배열을 Array 를 이용하여 배열을 만들면 
    
    var week = new Array("월","화","수","목","금","토","일"); 로 된다.
    
    var week = ["월","화","수","목","금","토","일"];

    

. 비어있는 배열생성

    초기에 배열의 원소 갯수를 예상 할수 없는 경우
    빈 배열을 생성할수 있다.

    var week = new Array();

    week 는 빈배열이지만 원소를 순서대로 삽입하면
    배열의 크기가 자동으로 늘어난다
    반드시 인덱스는 순서대로 삽입하여야 한다.

. 배열 생성 방법                의미

    new Array();                빈 배열 생성 추가할때 마다 배열 크기 자동늘림
    
    new Array(size);            size 갯수의 배열 생성 ,원소 초기화 되지 않음

    new Array(e1,e2,~en)        n 개의 원소에 대한 초기값과 함께 배열생성


. 배열의 특징

자바스크립트의 배열은 [ ] 로 생성하든 new Array() 로 생성하든 모두
Array() 객체로 다룬다.
그러므로 모두 아래의 Array 객체 메서드를 사용할수 있다.

또한 배열은 다양한 데이터가 혼재되어 저장될수 있다.


    메서드                                                       의미

concat(arr)                            현재 배열에 배열 arr 원소들을 덧붙여 만든 새 배열

join(separator)                      배열의 모든 원소들을 연결하여
                                               하나의 문자열로 만들어 리턴, 각원소 사이에
                                               separator 로 지정된 문자열 삽입, separator 가
                                                생략되면 ',' 가 사용

reverse()                                  원소를 역순으로 재배열하고 이를 복사한 새로운 배열 리턴

slice(isxA[,idxB])                       두 인덱스 idxA 와 idxB 사이의 원소들로 구성된
                                                   새 배열 리턴 , idxB 의 원소는 포함되지 않음
                                                  idxB 가 생략되면 끝 원소까지 포함

sort()                                       문자열을 사전순으로 정렬하고 이를 복사한 새 배열리턴

toString()                             원소들을 모두 연결하여 하나의 문자열로 만들어 리턴 , 원소와 원소사이 ',' 삽입



. Date 

  Date 객체는 시간 정보를 담는 객체이다.

  var now = new Date();  => 현재 날짜 시간 (시 , 분 , 초) 값으로 초기화된 객체 생성

    <h3>Date 객체로 현재 시간 알아내기</h3>
    <hr>
    <script>
        var now = new Date();   //현재시간 값을 가진 Date 객체 생성
        document.write("현재시간 : "+ now.toUTCString() +"<br><hr>");
        document.write(now.getFullYear()+"년도<br>");
        document.write(now.getMonth() + 1 +"월<br>");   //Month 는 +1 해줘야한다. 기본형식이다.
        document.write(now.getDate()+"일<br>");
        document.write(now.getHours()+"시<br>");
        document.write(now.getMinutes()+"분<br>");
        document.write(now.getSeconds()+"초<br>");
        document.write(now.getMilliseconds()+"밀리초<br><hr>");

        var next = new Date(2022,8,21,11,15,18);    //8은 9 월
        document.write("next.toLocaleString() : "+next.toLocaleString()+"<br>");
    </script>

위의 html 코드 출력한것

 

'국비 과정 > JavaScript' 카테고리의 다른 글

국비 - 0926 ( BOM )  (0) 2022.09.27
국비 - 0923 ( 이벤트 디폴트 )  (0) 2022.09.26
국비 - 0922 ( Math 객체 , Object 객체 , DOM)  (0) 2022.09.22
국비 - 0920 ( funtion )  (4) 2022.09.20
국비 - 0919 ( JavaScript )  (1) 2022.09.20