공부하는 블로그

JavaScript 객체 본문

Develop/JavaScript

JavaScript 객체

모아&모지리 2018. 2. 20. 10:19

JavaScript의 모든 객체는 object 자료형이며, 속성과 행위(이하 메서드)를 포함할 수 있다.

또한 동적으로 속성과 메서드를 지정할 수 있다.

모든 객체는 기본적으로 최상위인 Object클래스의 속성과 메서드를 상속받고 있다.


1)    객체 생성

객체는 new 연산자를 통해 생성하며, 동적으로 속성 및 메서드를 지정할 수 있다.

ex) 

var obj = new Object();

var arr = new Array();

obj.name = "쥬디"; // typeof string

obj.id; // typeof undefined


2)    객체 유효성 체크

object 자료형으로 사용하지만 객체로 만들지 않은 경우는 null이나 undefined 값을 사용할 수 있다. null이나 undefined 값을 가지는 변수는 조건문에서 false로 인식한다.

ex) 

var obj = null; (또는 var obj; 또는 var obj = undefined;)

if(!obj) {

alert("객체가 생성되지 않았습니다.");

};

obj.name (X) // Runtime Error 생성되지 않은 객체에는 동적으로 변수가 생성되지 않음

obj = new Object();

obj.name = "쥬디";

if(!obj.id) {

alert("ID 속성이 undefined 입니다.");

}


3)    객체 또는 객체속성 삭제

-     암시적으로 생성된 객체나 객체의 속성은 delete연산자를 통해 삭제 할 수 있다.

-     var로 선언된 객체는 delete연산자를 통해 삭제되지 않으며, 모든 속성을 따로 delete로 삭제 후 null을 통해 삭제한다.

-     window에 생성한 전역 객체는 delete연산자를 사용할 경우 Runtime Error를 발생한다. 즉 브라우저에서 구현된 내장객체의 속성은 삭제가 불가능하다.

-     배열 객체의 인덱스도 삭제가 가능하다.

ex)  


var person = new Object();

delete person; (X) // 삭제되지 않음

person = null; //  null 처리하면 된다.



person = new Object();

person.name = "쥬디";

person.id = 111111;

delete person; //암시적으로 생성된 객체는 삭제됨.

//검증

for(var attr in person) {

    alert("attribute :: "+attr);

}



window.person = new Object();

delete window.person; (X) // Runtime Error



var person = new Object();

person.name = "쥬디";

person.id = 111111;

delete person.id;

//검증

for(var attr in person) {

    alert("attribute :: "+attr);

}



var arr = new Array();

arr.push(11);

arr.push(22);

delete arr[0];

//검증

alert(arr.length); // 결과는 2 delete arr[0] undefined 임에 주의한다.

alert(arr[0]);


'Develop > JavaScript' 카테고리의 다른 글

JavaScript Object Notation (JSON)  (0) 2018.02.20
atom 에디터 단축키 모음  (0) 2018.02.20
JavaScript 정규표현식  (0) 2018.02.20
클로저 (Closure)  (0) 2018.02.20
arguments 객체  (0) 2018.02.20