Programming Language/Javascript (Node.js)

[자바스크립트 프로그래밍 입문](2판) 연습문제 - Chapter06. 객체

yen31 2025. 4. 27. 17:35
반응형

개인적으로 공부한 내용을 담은 포스팅이라 오타나 오류가 있을 수 있다는 점 참고 부탁드립니다~!

 

 

Chapter06. 객체

 

 

 

01. 다음 괄호 안을 채우시오.

  • 배열은 요소에 인덱스로 접근하고, 객체는 속성에 으로 접근한다.
    ➡️ 해설: 객체의 속성은 키(이름)로 접근하며, 배열은 숫자 인덱스로 접근한다.
  • 객체의 속성 중에 함수 자료형인 속성을 메서드라고 부른다.
    ➡️ 해설: 객체 내부에 정의된 함수는 메서드라 부른다.
  • 생성자 함수는 동일한 형태의 객체를 쉽게 만들 수 있게 해 주는 문법이다.
    ➡️ 해설: 객체를 반복 생성할 때 사용하는 함수 형태이다.
  • 클래스를 기반으로 객체를 만들 때는 new 키워드를 사용한다.
    ➡️ 해설: 클래스를 인스턴스화할 때 new 키워드를 사용한다.

 

 

02. 다음 질문에 OX를 표시하시오.

  • 객체는 대괄호[]로 만든다. X
    ➡️ 해설: 중괄호 { }로 만든다.
  • 객체는 key와 value 쌍으로 저장한다. O
  • 객체는 배열과 마찬가지로 여러 자료형을 한꺼번에 저장하는 자료형이다. O
  • 객체의 요소에 접근할 때는 객체[키] 또는 객체.키를 사용한다. O
  • 식별자로 사용할 수 있는 문자열만 키로 사용할 수 있다. X
    ➡️ 해설: 키는 반드시 문자열 또는 Symbol이어야 하지만, 공백·특수문자가 포함된 문자열도 사용할 수 있다.
  • 객체의 메서드에서 자기 자신의 속성에 접근할 때는 this 키워드를 생략할 수 없다. O
  • 객체는 속성으로 단순한 자료형만 가질 수 있으며, 객체 또는 배열 같은 복합 자료형은 가질 수 없다. X
    ➡️ 해설: 객체의 속성은 객체·배열·함수 등 복합 자료형도 가능하다.
  • 객체에는 for in과 for of 반복문을 모두 적용할 수 있다. X
    ➡️ 해설: 객체에는 for in만 가능하며, for of는 iterable에만 적용된다.

 

 

03. 다음 중 생성자를 만들 때 사용하는 메서드의 이름은?

 

  1. construct
  2. constructor
  3. init
  4. 클래스 이름과 같은 이름

 

정답: constructor

 

해설: 클래스 내부에서 생성자는 반드시 constructor라는 이름을 사용해야 한다.

 

 

04. 클래스를 기반으로 만들어진 객체를 부르는 용어를 고르시오.

 

  1. 인터러스트
  2. new 객체
  3. 메서드 객체
  4. 인스턴스

 

정답: 인스턴스

 

해설: 클래스에서 생성된 객체를 인스턴스라고 부른다.

 

 

05. 자바스크립트에서 존재하지 않는 것을 나타내는 값을 모두 고르시오.

 

  1. undefined
  2. nothing
  3. null
  4. nil

 

정답: nothing, nil

 

해설: undefined, null은 존재하지만, nothingnil은 JavaScript에 없는 값이다.

 

 

06. 다음 표를 자바스크립트 객체로 나타내시오.

 

 

정답

const book = {
  이름: "Nature of Code",
  가격: "30000원",
  저자: "다니엘 샤프만",
  ISBN: "9788968481901",
  페이지수: "620페이지"
};

 

 

해설

  • 각 속성을 키(key)로, 값을 value로 구성
  • 문자열이므로 모두 따옴표로 감싸는 것이 좋음
  • 페이지 수나 가격은 단위가 붙어 있어서 문자열 처리 적절

 

 

07. 다음 표의 객체를 생성할 수 있는 클래스를 만드시오.

 

 

 

정답

class Product {

  constructor(이름, 무게, 가격) {
    this.이름 = 이름;
    this.무게 = 무게; // 기준 무게 (예: 100)
    this.가격 = 가격; // 기준 가격 (예: 1690)
  }

  calculate(입력무게) {
    const 기준무게숫자 = parseInt(this.무게); // '100g' → 100
    const 단가 = this.가격 / 기준무게숫자;
    const 결과가격 = 단가 * 입력무게;
    console.log(`${결과가격}원`);
  }
}

 

 

해설: 생성자는 속성 초기화, calculate 메서드는 입력 무게에 따른 가격을 계산해 출력한다.

  • 생성자는 객체 속성 초기화
  • 메서드 calculate()는 기준 무게로 나눠 단가 계산 후 입력 무게 곱
  • parseInt()로 단위 제거
  • 출력은 ${결과가격}원 형태로 처리

 

 

08. 다음 코드의 실행 결과를 예측하시오.

let object = {
  "+": 1,
  "-": 2,
  "*": 3,
  "/": 4
};

console.log(object.+);
console.log(object.-);
console.log(object.*);
console.log(object./);

 

 

 

정답: 문법 오류(SyntaxError)

 

 

해설:

  • 자바스크립트에서 . 표기법(dot notation)식별자(Identifier) 형식의 키에만 사용 가능함
  • +, , , / 와 같은 기호는 유효한 식별자 이름이 아니므로 object.+ 형태는 문법적으로 허용되지 않음

 

오류 없는 버전:

이런 특수문자가 포함된 키는 대괄호 표기법([]) 을 사용해야 한다.

console.log(object["+"]); // 1
console.log(object["-"]); // 2
console.log(object["*"]); // 3
console.log(object["/"]); // 4

 

 

 

반응형