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. 다음 중 생성자를 만들 때 사용하는 메서드의 이름은?
- construct
- constructor
- init
- 클래스 이름과 같은 이름
정답: constructor
해설: 클래스 내부에서 생성자는 반드시 constructor
라는 이름을 사용해야 한다.
04. 클래스를 기반으로 만들어진 객체를 부르는 용어를 고르시오.
- 인터러스트
- new 객체
- 메서드 객체
- 인스턴스
정답: 인스턴스
해설: 클래스에서 생성된 객체를 인스턴스라고 부른다.
05. 자바스크립트에서 존재하지 않는 것을 나타내는 값을 모두 고르시오.
- undefined
- nothing
- null
- nil
정답: nothing, nil
해설: undefined
, null
은 존재하지만, nothing
과 nil
은 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
반응형