본문 바로가기
Javascript

JavaScript - Object

by Su1993 2020. 7. 4.
반응형

 

 

 

  • 객체는 {}(중괄호)로 감싸져 있고, 클론으로 구분된 이름/값 쌍들이 쉼표로 분리된 목록의 형태이다.

다시 말해, 객체는 이름과 값으로 구성된 프로퍼티들의 집합이라 할 수 있다. 여기서 주의할 점은 프로퍼티 이름이 중복되어선 안된다.

 

객체의 예)

let plan1 = {
  name: "Basic",
  price: 3.99,
  space: 100,
  transfer: 1000,
  pages: 10
};

위의 규칙을 지켜 객체를 만들 수 있다.

  • property 이름은 중복될 수 없다.
  • property 이름과 property값 사이에 :(콜론)으로 구분한다.
  • property를 추가할 때는 ,(쉼표)를 붙여준다.
  • property값에는 어느 type이나 가능하다.(string, number, array, object, function..)

해당 객체의 property값을 접근하고 싶을 때는 다음과 같다.

 

 

1. 마침표(.) 연산자를 사용하며, 접근하려는 객체명은 왼쪽에, 프로퍼티명은 오른쪽에 위치한다.

2. 대괄호([])를 사용하여, 접근하려는 객체명은 왼쪽에, 프로퍼티명은 쌍따옴표("")와 함께 대괄호 안에 작성한다.

 

let plan1 = {   
  name: "Basic"
};

console.log(plan1.name);
console.log(plan1["name"]);

 

여기서 대괄호 안에는 변수가 들어갈 수 있다. 예를 들어 표현하자면,

 

let plan1 = {   
  name: "Basic"
};

let propertyName = "name";

console.log(plan1[propertyName]);

 

let myObj = {
  property1: "hello",
  property2: [1,2,3,4,5],
  property3: {
    childproperty: "haha"
  }
};

let name = "property";
console.log(myObj[name+"1"]);
console.log(myObj[name+"2"]);
console.log(myObj[name+"3"]);
console.log(myObj[name+"3"]["child"+name]);

console.log(myObj.property1);
console.log(myObj.property2);
console.log(myObj.property3);
console.log(myObj.property3.childproperty);

 

이런식으로 표현할 수 있다. 위의 myObj 객체를 정의한 후에 property 값을 수정할 수 있다.

 

let name = "property1";

myObj[name] = ["hi", "hello"];

console.log(myObj);

 

이렇게 myObj 객체의 property1의 값은 원래 텍스트였는데 배열로 바꿔보았다.

혹은 새로운 property를 추가할 수도 있다.

 

myObj.property3.siblingproperty = [3, 6, 9];
console.log(myObj);

 

myObj의 property1가 배열로 바꿨는데, 이 배열의 첫 번째 요소를 접근하고 싶으면 다음과 같이 할 수 있다.

 

console.log(myObj.property1[0]);

 

myObj.property1는 ["hi", "hello"]이고, index 0을 접근하니까 "hi"가 나올 것이다.

 

아래와 같은 객체의 구조는 정말 많이 쓰인다.

 

let objData = {
  name: 50,
  address: { 
    email: "gaebal@gmail.com",
    home: "위워크 선릉2호점"
  },
  books: {
    year: [2019, 2018, 2006],
    info: [{
      name: "JS Guide",
      price: 9000
    }, {
      name: "HTML Guide",
      price: 19000,
      author: "Kim, gae bal"
    }]
  }
};

 

objData라는 객체 안에 name, address, books라는 property가 있고, books에 또 객체가 할당되었다.

위의 데이터에서 "HTML Guide"에 접근하고 싶을 때는 아래와 같이 해주면 된다.

 

let bookName = objData.books.info[1].name;
console.log(bookName);
반응형

'Javascript' 카테고리의 다른 글

JavaScript - Class  (0) 2020.07.05
JavaScript - Scope  (0) 2020.07.04
JavaScript - Number  (0) 2020.07.04
JavaScript - 날짜와 시간  (0) 2020.06.22
JavaScript - String, Number 변환  (0) 2020.06.22

댓글