[TIL] DAY 26 OBJECT

j1_0·2022년 12월 5일

DAY 26 <OBJECT>

객체형

원시형(Primitive type) 과는 다르게 다양한 데이터를 담을 수 있다.
키로 구분된 데이터 집합 또는 복잡한 개체 (entity) 저장이 가능하다.

객체는 중괄호 { } 를 이용해 만들 수 있고 그 안에는 {key:value} 의 쌍으로 구성된 프로퍼티를 여러개 넣을 수 있다. key 에는 문자형, value 에는 모든 자료형이 허용 가능하다.
'프로퍼티 키'는 '프로퍼티 이름'이라고 불린다.

빈 객체를 만드는 방법

let user = new Object() // '객체 생성자' 
let user = {} //'객체 리터럴'

중괄호를 이용해 객체를 선언하는 것을 객체 리터럴 이라고 부르고 대부분 객체 리터럴을 사용한다.

litelals and property

콜론 : 을 기준으로 왼쪽은 키, 오른쪽은 값이 존재하고 프로퍼티 키, 프로퍼티 이름 혹은 식별자 라고 부른다.

let user = { //	2개의 프로퍼티
  name:'John',
  age:20
  
};

console.log(user.name); //John
console.log(user.age); //20

user.isAdmin //불린형 추가
console.log(user)//{ name: 'John', age: 20, isAdmin: true }

delete user.age // delete 연산자를 이용한 프로퍼티 삭제
console.log(user) ///{name:'John', isAdmin:true}

여러단어를 조합해 프로퍼티 이름을 만든 경우에는 프로퍼티 이름을 따옴표로 묶어줘야한다.

let user ={
  name:"John",
  age:30,
  "like birds" :true 
};
console.log(user)// {name:'John', age:30, 'like birds':true}
console.log(user["like birds"])//true 

마지막 프로퍼티 끝을 쉼표로 끝내는 것을 trailing(길게 늘어지는), hanging(매달리는) 쉼표라고 부르고, 이런식으로 만들어지면 모든 프로퍼티가 유사한 형태를 보여서 프로퍼티 추가, 삭제, 이동하는 것이 쉬워진다.

const 로 선언된 상수 객체도 수정이 가능하다.

점은 키가 유효한 변수 식별자에만 사용이 가능하다. 유효한 변수 식별자에는 공백이 없어야하고 숫자로 시작하지 않아야하며, $ _를 제외한 특수 문자가 없어야 한다.

변수 key 프로퍼티 키로 사용되기 때문에 이를 응용하면 코드를 유연하게 작성할 수 있다. 사용자 입력 값 변경 등에 따라 값이 변경될 수 있다.

let user = {
  name: "John",
  age: 30,
};

let key = "name";
console.log(user[key]);//John 
console.log(user.key)//undefined//점 표기법으로는 불가능

computed property

계산된 프로퍼티는 객체 리터럴 안의 프로퍼티가 대괄호로 둘러싸여있는 경우를 얘기한다.

property value shorthand

단축 프로퍼티는 프로퍼티 이름과 값이 변수와 동일 할때 코드를 줄여서 사용하는 것이다.
name:name 대신 name 만 적어서 프로퍼티 설정을 할 수 있다.

1개의 댓글

comment-user-thumbnail
2022년 12월 7일

오... 깔끔한 내용 저도 정독했습니다 ㅎㅎ

답글 달기