객체 기초
1. 객체
let user = {
firstName : 'Somin',
lastName : 'Park',
city : 'Seoul',
sayHello(){
console.log(`Hello, i'm ${this.firstName}`)
}
}
user.sayHello()
- 중괄호를 이용해 객체를 만듦
- property : 키와 값의 쌍
- 키와 값의 쌍은 서로 쉽표로 구분
- 객체 안엔 함수가 들어갈 수 있음
*user대신 this 사용, 화살표함수에선 this 사용 불가(메소드 호출 방식을 이용할 때에는 화살표 함수 사용 불가)
2. 객체의 값을 사용하는 방법
1) Dot notation
- '.'을 사용하여 접근
- 없는 property에 접근시 undefined
let user = {
firstName : 'Somin',
lastName : 'Park',
city : 'Seoul'
}
user.firstName;
2) Bracket notation
- '[]'를 사용하여 점금
- 대괄호 안에 키가 문자열로 들어감
- 문자열 형식이 아닐 경우 변수로 취급
- 없는 property에 접근시 undefined
let user = {
firstName : 'Somin',
lastName : 'Park',
city : 'Seoul'
}
user['firstName'];
user['email'];
3) Dot notation VS Bracket notation
- Dot notation : 정해진 키만 사용 가능(변수 불가능)
- Bracket notation : 키가 변수(동적인 값)일 경우에도 사용 가능
*대괄호 안에 '' 사용 X
fuction getProperty(obj, propertyName) {
return obj.propertyName
return obj[propertyName]
객체 속성의 추가, 조회, 변경, 삭제
1. 값을 추가하기
- Dot notation, Bracket notation을 이용해 추가 가능
let user = {
firstName : 'Somin',
lastName : 'Park',
city : 'Seoul'
}
user['isAdult'] = true;
user.job = 'Student';
console.log(user)
2. 값을 변경하기
- Dot notation, Bracket notation을 이용해 변경 가능
let user = {
firstName : 'Somin',
lastName : 'Park',
city : 'Seoul'
}
user['city'] = 'Daejeon';
user.firstName = 'KKAKKA';
console.log(user)
3. delete : 값을 삭제하기
let user = {
firstName : 'Somin',
lastName : 'Park',
city : 'Seoul',
isAdult : true,
job : 'Student'
}
delete user['isAdult'];
delete user.job;
console.log(user)
4. in 연산자 : 키가 있는지 확인하기
let user = {
firstName : 'Somin',
lastName : 'Park',
city : 'Seoul'
}
'city' in user;
'email' in user;
5. for in 구문
- 객체의 모든 키에 접근하고 출력할 수 있음
- 객체를 순회함
*for of : string과 array, 유사배열 등에서 사용(객체에는 사용되지 않음)
let user = {
firstName : 'Somin',
lastName : 'Park',
city : 'Seoul'
}
for (let key in user) {
console.log(key)
console.log(user[key])
}
6. 빈 객체
let obj = {}
Object.keys(obj).length === 0
객체의 기초 메소드
1. Object.assign()
let user = {
name : 'Somin',
age : 26
}
const newUser = Object.assign({}, user);
const newUser = Object.assign({gender : 'female'}, user);
console.log(newUser)
const newUser = Object.assign({name : 'KKAKKA'}, user);
console.log(newUser)
let user = {
name : 'Somin'
}
let info1 = {
age : 26
}
let info2 = {
gender : 'female'
}
const newUser = Object.assign(user, info1, info2);
console.log(newUser)
2. Object.keys()
- 객체의 키를 배열로 반환
- object.length는 사용 불가능하기에 Object.keys()를 활용해 유사 배열로 만들어줌
- 배열에 사용할 경우 index가 배열의 형태로 반환
let user = {
name : 'Somin',
age : 26,
gender: 'female'
}
Object.keys(user)
console.log(user.length)
console.log(Object.keys(user).length)
3. Object.values()
let user = {
name : 'Somin',
age : 26,
gender: 'female'
}
Object.values(user)
4. Object.entries()
- 키와 값을 모두 배열로 반환
- 키와 값이 쌍으로 묶여 배열이 됨
- 배열 안에 배열
let user = {
name : 'Somin',
age : 26,
gender: 'female'
}
Object.entries(user)
5. Object.fromEntries()
let user =
[
[ 'name', 'Somin' ],
[ 'age', 26 ],
[ 'gender', 'female' ]
]
Object.fromEntries(user)
References
1. 객체 메소드1
2. 객체 메소드2