JAVASCRIPT literal object, create object (230718)

이원건·2023년 7월 18일
0

JAVASCRIPT

목록 보기
4/6
post-thumbnail

1. 리터럴 객체란?

자바 스크립트에서 객체 생성시에

let obj = {
  name: "objName",
  key: "value"
}

이런 식으로 직접 key, value를 대입해서 넣어주는 것.

let obj = new Object();
obj.name = "objName";
obj.key = "value";

이렇게 넣더라도 어차피 리터럴 객체형태로 들어간다.


2. 자바스크립트에서 객체 생성 방법 3가지는?

  1. Object() 함수를 new 키워드와 함께 코드 작성해 객체 생성.
  2. 리터럴 객체를 대입해 객체 생성.
  3. function으로 클래스 비슷하게 생성해 생성자처럼 이용해 객체 생성

3. 아래를 프로그래밍 하시오.

  • 문제

    var circle = new Circle(10);
    document.write(circle.getArea()); //반지름 10 넓이는 314.1516 입니다.
  • 코드

    function Circle(rad){
      this.rad = rad;
      this.getArea = function(){
        return `반지름 ${this.rad} 넓이는 ${this.rad*this.rad*Math.PI}입니다.`;
      }
    }
    var circle = new Circle(10);
    document.write(circle.getArea()); //반지름 10 넓이는 314.1516 입니다.
  • 실행 결과

    반지름 10 넓이는 314.1592653589793입니다. 

4. 아래를 프로그래밍 하시오.

  • 문제

    let 홍길동 = new Grade("홍길동",100,70,80);
    
    document.write(홍길동.getAvg()); // 홍길동의 평균운 76.797 입니다.
    document.write(홍길동.getGrade());// 홍길동의 성적운 미 입니다.
  • 코드

    function Grade(name, kor, eng, math){
      this.name = name;
      this.kor = kor;
      this.eng = eng;
      this.math = math;
    
      this.getAvg = function() {
        let avg = (this.kor+this.math+this.eng)/3.0;
        return `${name}의 평균은 ${avg}입니다.<br>`;
      }
      this.getGrade = function(){
        let avg = (this.kor+this.math+this.eng)/3.0;
        let grade = '가';
        if(avg>=90){
          grade = '수';
        } else if(avg>=80){
          grade = '우';
        } else if(avg>=70){
          grade = '미';
        } else if(avg>=60){
          grade = '양';
        } else {
          grade = '가';
        }
        return `${name}의 성적은 ${grade}입니다.<br>`;
      }
    }
    let 홍길동 = new Grade("홍길동",100,70,80);
    
    document.write(홍길동.getAvg()); // 홍길동의 평균운 76.797 입니다.
    document.write(홍길동.getGrade());// 홍길동의 성적운 미 입니다.
  • 실행 결과

    홍길동의 평균은 83.33333333333333입니다.
    홍길동의 성적은 우입니다.

5. 아래를 프로그래밍 하시오.

  • 문제

    설명 : 1부터 10까지 출력을 하되, 1초마다 증가된 숫자를 하나씩 찍고, 10초후 프로그램 완료를 찍을것

  • 출력 예시

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    프로그램 완료
  • 코드

    let i =1;
    let writeFun = setTimeout(function write(){
      document.write(`${i}<br>`);
      if(i >= 10){
        document.write(`프로그램 완료`);
        return;
      }
      i++;
      setTimeout(write, 1000);
    }, 1000);
  • 실행 결과

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    프로그램 완료

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

많은 도움이 되었습니다, 감사합니다.

답글 달기