Hello World

7장 객체와 배열 본문

Javascript/Book Study

7장 객체와 배열

EnterKey 2012. 8. 14. 16:33
반응형

7장. 객체와 배열

1. 객체 : 객체는 복합 타입이다.

2. 객체 프로퍼티 열거하기
function DisplayPropertyNames(obj){

var names = “”;
for(var name in obj) names += name + ‘\n’;
alert(names);
}



3. 프로퍼티 존재 확인하기
if( “x” in o ) o.x = 1; // 객체 o에 프로퍼티 “x”가 있으면 1을 저장한다.
if(o.x !== undefined) o.x = 1; // x가 존재하고 값이 undefined가 아니라면 1을 저장
         // 객체에 없는 프로퍼티에 접근하려 하면 undefined값 반환


4. 연관 배열로서의 객체

- object.property와 object[“property”] 는 완전히 동일한 값이다.

- 연관배열은 동적으로 임의의 값과 임의의 문자열을 연관지어 저장할 수 있는 자료구조


5. constructor 프로퍼티
- 자바스크립트에서 모든 객체는 객체를 초기화하는데 사용되는 생성자 함수인

constructor 프로퍼티를 지니고 있다.
ex)
var d = new Date();
d.constructor == Date;

- 생성자 함수는 객체의 범주. 즉, 클래스를 정의하므로, 

constructor 프로퍼티를 객체의 타입을 판단하는데 사용될 수 있다.


ex)

if ((typeof o == “object”) && (o.constructor == Date))
- instanceof 연산자는 constructor 프로퍼티의 값을 사용한다.

ex)
if ((typeof o == “object”) && (o instanceof Date))


6. toString() 메서드
- 별도의 전달인자 없이 호출.

- 메서드를 호출한 객체의 값을 어떠한 방식으로든 표현하는 문자열을 만들어 결과 반환


7. valueOf() 메소드
- 자바스크립트가 객체를 문자열이 아니라 숫자 같은 다른 기본 타입으로 

변환하려 할 때 호출
- 객체가 기본 타입 값을 필요로 하는 문맥 안에서 사용될 때,
 

자바스크립트는 valueOf() 메서드를 자동 호출

8. hasOwnProperty() 메서드
- 프로퍼티의 이름을 담는 한개의 문자열 전달인자를 받아서,
객체가 

이 프로퍼티를 소유하고 있는지 검사.

 

- 프로퍼티가 상속받은 것이 아니고 객체 안에 지역적으로 정의되어 존재한다면 true,

 그렇지 않으면 false 를 리턴 

ex) 

var o = {};

o.hasOwnProperty(“undef”); // false : 프로퍼티가 정의되지 않음.

o.hasOwnProperty(“toString”); // false : toString은 상속받은 프로퍼티다.

Math.hasOwnProperty(“cos”); // true : Math 객체에 cos 프로퍼티가 있다.


9. propertyIsEnumerable() 메서드
- 프로퍼티의 이름을 담은 문자열 전달인자를 하나 받음
- 이 이름의 프로퍼티를 객체가 상속받지 않고 직접 지역적으로 정의했는지 검사.

- 이 프로퍼티가 for/in 루프를 사용하여 열거될 수 있는 것인지 검사.
- 이 모든 조건을 충족하면 true, 아니면 false 를 리턴.

ex)
var o = { x : 1 };
o.propertyIsEnumerable(“x”); // true : 프로퍼티가 존재하고 열거할 수 있다.
o.propertyIsEnumerable(“y”); // false : 프로퍼티가 존재 하지 않는다.
o.propertyIsEnumerable(“valueOf”); // false : valueOf 는 상속받은 프로퍼티

10. 배열
- 순서 있는 값들의 집합

- 자바스크립트는 타입이 고정되지 않은 언어기 떄문에 같은 배열의 각 원소는

서로 다른 임의의 타입을 가질 수 있다.

- 배열은 다른 배을을 원소로 가질 수도 있기 때문에, 

배열의 배열과 같은 자료구조를 생성 가능.

- 임의 개수의 원소를 가질 수 있으며 원소의 개수는 언제든 변경 할 수 있다.

- 배열의 인덱스는 연속적이지 않아도 된다.

반응형

'Javascript > Book Study' 카테고리의 다른 글

9장 클래스, 생성자, 프로토타입  (0) 2012.09.03
8장 함수  (0) 2012.08.29
6장 문장  (0) 2012.08.14
5장 표현식과 연산자  (0) 2012.08.09
4장 변수  (0) 2012.08.09
Comments