DAY 26 <OBJECT>
객체형
원시형(Primitive type) 과는 다르게 다양한 데이터를 담을 수 있다.
키로 구분된 데이터 집합 또는 복잡한 개체 (entity) 저장이 가능하다.
객체는 중괄호 { } 를 이용해 만들 수 있고 그 안에는 {key:value} 의 쌍으로 구성된 프로퍼티를 여러개 넣을 수 있다. key 에는 문자형, value 에는 모든 자료형이 허용 가능하다.
'프로퍼티 키'는 '프로퍼티 이름'이라고 불린다.
빈 객체를 만드는 방법
let user = new Object() // '객체 생성자'
let user = {} //'객체 리터럴'
중괄호를 이용해 객체를 선언하는 것을 객체 리터럴 이라고 부르고 대부분 객체 리터럴을 사용한다.
콜론 : 을 기준으로 왼쪽은 키, 오른쪽은 값이 존재하고 프로퍼티 키, 프로퍼티 이름 혹은 식별자 라고 부른다.
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//점 표기법으로는 불가능
계산된 프로퍼티는 객체 리터럴 안의 프로퍼티가 대괄호로 둘러싸여있는 경우를 얘기한다.
단축 프로퍼티는 프로퍼티 이름과 값이 변수와 동일 할때 코드를 줄여서 사용하는 것이다.
name:name 대신 name 만 적어서 프로퍼티 설정을 할 수 있다.
오... 깔끔한 내용 저도 정독했습니다 ㅎㅎ