profile HaeRim's Dev Blog HTML, CSS, JS, Vue

Object

» javascript

오브잭트(Object)

  • Property (프로퍼티) {name : value} 형태 ES5에선 name과 key 값을 구분하지 않아도 되지만, ES6에선 구분해줘야한다.
  • name에 프로퍼티 이름/키를 작성한다. 따옴표 작성은 생략해도 괜찮다. 작성하지 않아도 문자열로 간주하기 때문이다.
      var book = {
          title : ""
      };
    
  • value에 JS에서 지원하는 타입을 작성한다, String, Number, boolean, object, function…
      var book = {
          //object start
          title : "", //string
          poinit: { //object
              ten : 10, // number
              bouns: 200, // number
              promotion: function(){} //function
          }
      };
    
  • 오브젝트를 객체라고도 부르지만 뉘앙스가 좀 다르다.
    오브젝트는 name과 value처럼 실체가 있지만 객체는 실체가 없는 경우도 있다.

프로퍼티 추가 및 변경

  • 오브젝트에 프로퍼티 추가, 변경
      var obj = {};
      obj.abc = 123;
    

    obj 오브젝트에 프로퍼티 이름으로 abc가 없다면 abc:123이 추가 되고,
    abc가 있으면 프로퍼티 값이 123으로 변경된다.

  • 작성 방법
      var book = {};
      book.title = "JS책";
      log(book);
      // 실행결과 : {title : JS책}
    
      var book = {};
      book["title"] = "JS책";
      log(book);
      // 실행 결과 : {title : JS책}
    
      var book = {title: "JS 책"};
      var varName = "title";
      book[varName] = "HTML 책";
      log(book);
      // 실행 결과 : {title : HTML 책}
    

    프로퍼티 이름을 변수에 작성하고 이를 사용한다, title 프로퍼티 이름이 있으므로 프로퍼티 값이 HTML 책으로 변경된다.


Object 프로퍼티 열거

프로퍼티 값 추출

  • 오브젝트에서 프로퍼티의 값 추출 var obj = {book: “책”};
    var value = obj.book;
    obj 오브젝트에 프로퍼트 이름인 book이 있으면 프로퍼티 값을 반환한다.
    book이 없으면 undefined 를 반환한다.
    var obj = {book : ""};
    log(obj.book);
    log(obj["sports"]);
    // 실행결과 : 책
    // 실행결과 : undefined
    

    book 이라는 프로퍼티 값이 존재하므로 프로퍼티 값인 “책”을 반환한다.
    sports 라는 프로퍼티 값이 없으므로 undefined가 반환된다.


for~in 문

  • 오브젝트에서 프로퍼티를 열거한다.
  • 형태 : for(변수 in 오브젝트) 문장;
    for(표현식 in 오브젝트) 문장;
    var sports = {
      soccer : "축구",
      baseball : "야구"
    };
    for(var item in sports){
      log(item);
      log(sports[item]);
    }
    // 실행결과 : soccer, 축구, baseball, 야구
    

    프로퍼티 이름이 item에 설정된다.(하나만 설정되는게 아니라 object 안에 있는 모든 프로퍼티)
    sports[item]으로 프로퍼티의 값을 구한다.
    ES3에선 프로퍼티를 작성한 순서대로 읽혀진다는 것을 보장하진 않는다. 그러나 ES5부터는 작성된 순서대로 읽혀진다.