Object
Dec 14, 2020
»
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"]); // 실행결과 : 책 // 실행결과 : undefinedbook 이라는 프로퍼티 값이 존재하므로 프로퍼티 값인 “책”을 반환한다.
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부터는 작성된 순서대로 읽혀진다.