ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • javascript 2
    프로그래밍 언어 😵‍💫/JavaScript 2023. 3. 6. 02:20

    객체 

    - 프로퍼티(변수)

    - 메소드(함수)

     

    자바스크립트는 객체 기반 언어 

    객체 유형 1. 코어객체 2. HTML DOM객체 3. 브라우저 객체

     

    • 코어 객체 종류 

    Array, Date, String, Math 등 (객체 생성하면 내부에 이미 프로퍼티 메소드 존재함)

    Date : 시간정보 담는 객체 new Date(년,월,일); // 2는 3월을 뜻함 

    String : 문자열 담기위한 객체 (일단 생성되면 수정 불가능 -> concat()후에도 기존 문자열에는 변화없다) 

    문자열을 배열처럼 [] 연산자 사용해서 문자에 접근 

    Math : new 키워드 사용 X 

    난수 발생 

    Math.random() :0- 0.99999 보다 작은 랜덤한 실수 리턴 

    Math.floor(m) : m의 소수점 이하를 제거하는 정수 리턴

    //0-99까지의 랜덤한 정수 10개 만드는 코드 
    
    for(i=0; i<10; i++) {
    var m = Math.random() * 100;  //m은 0- 99.99999보다 작은 랜덤 실수
    var n = Math.floor(m); //뽑힌 숫자 m에서 소수점 이하 제거한 정수 (0-99사이)
    document.write(n+" "); }
    //1-9 까지의 십진 난수
    function randomInt() {
    return Math.floor(Math.random()*9) + 1; // 0-8.999니까 1을 더해서 1 - 9.999 이고 소수점 제거
    }
    • 코어 객체 생성   

    new 키워드 이용 // var today = new Date();

    • 객체 접근   

    객체와 멤버 사이 점(.) 연산자 이용 

    obj.프로퍼티 = 값; 

    변수 = obj.프로퍼티;

    obj.메소드(매개변수 값들);

    <script>
    var today = new Date(); //Date 객체 생성
    document.write("현재시간 :" + today.toLocaleString() + "<br>"); //메소드 호출
    
    var mystr = new String("자바스크립트 공부하기"); //String 객체 생성
    document.write("mystr의 길이 :" + mystr.length + "<br>"); // 프로퍼티 읽기 
    </script>

     

    배열 만들기 

    1. []로 배열 만들기 

    var plots = [-20, -5, 0 , 15, 20];

    배열의 크기

    plots[5] = 33; //plots배열에 6번째 원소 추가. 배열의 크기 6

    <주의> plots[10] = 33; 오류 !! -> 차례대로 추가해줘야함 

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <title>[]로 배열 만들기</title>
    </head>
    <body>
        <h3>[]로 배열 만들기</h3>
        <hr>
        <script>
            var plots = [20, 5,8,15,20];
            document.write("var plots = [" +plots+"] <br>");
    
            for(i=0; i<plots.length;i++){
                for(j=0; j<plots[i]; j++){
                    document.write("*");
                }
                document.write(plots[i]+"<br>");
            }
    
        </script>
    
    </body>
    </html>

    나는 이렇게 짜주었는데 

    원래 교재에서는

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

    이렇게 

    for문으로 반복하는데 아예 배열의 크기가 고정되어 있으니 5번 반복하고 

    반복하는 동안의 i번째 원소를 size라는 변수에 저장하고 

    size가 0보다 큰 동안 size를 줄여가며 (20일때 * 하나 찍고 -- 해서 19되면 *하나 이렇게 0이 될때까지)

    ...어려운 코드를 썼다 웅웅..

     

    2. Array로 배열 만들기 

    var week = new Array("월", "화", "수"); //초기값 가진 배열

     

    var week = new Array(7); //배열의 크기 먼저 생성하고 

    week[0] ="월"; // 나중에 원소 값 저장 

     

    var week = new Array(); //빈 배열 생성 원소값 저장 할때마다 크기 증가 

    c = a.concat(b);
    c는 a와 b를 연결한 새 배열
    c = a.join("##");
    c는 배열 a사이에 "##" 연결한 문자열
    c = a.reverse();
    a.reverse()로 a 자체 변경
    c = a.slice(1,2);
    c는 a를 1부터 2까지 자른 문자열
    c = a.sort();
    a.sort()로 a 자체 변경
    c= a.toString();
    toString()은 원소사이에 "," 넣어 문자열 생성

     

    사용자객체생성 1. 직접객체 (new Object() , 리터럴 표기법) 2. 객체의 틀(프로토타입)만들고 생성

     

    new Object()

    function inquiry() {
    return this.balance;  //inquiry메소드가 속해있는 객체의 balance 프로퍼티니까 this. 사용
    }
    
    var account = new Object();
    account.balance = 35000; //프로퍼티 생성 및 초기화
    account.inquiry = inquiry; //메소드 작성

     리터럴 표기법

    var account = { 
    balance : 35000, //프로퍼티 생성 및 초기화
    
    inquiry : function() {
    return this.balance; } // 메소드 작성
    };

     

    프로토타입 (클래스 같은 거)

    코어객체가 자바스크립트에서 제공하는 프로토타입 

    //프로토타입은 함수로 만든다
    function Student(name, score) {
    this.name = name;
    this.score = score; //score 프로퍼티 작성
    this.getGrade = function () {
    if(this.score > 80) return "A";
    else if(this.score > 60) return "B";
    else return "F" }  // 메소드 작성
    }
    
    객체 생성 new 키워드 사용
    var mina = new Student("채민아", 90); 
    document.write(mina.name + "의 학점은" + mina.getGrade() + "<br>");

     

Diseñada por Tistory.