객체란 한 마디로 우리 주변에 실제하는 사물로 정의할 수 있습니다. 객체에는 하나의 변수에 대한 다양한 정보를 담을 수 있는 데이터 타입이며, key와 value값을 가진다. 오늘은 객체 내에 있는 정보를 다루는 방법에 대하여 정리해보고자 합니다.
객체의 Property값을 다루기 위해서는 Dot Notation과 Bracket Notation 두 가지 방법이 존재합니다.
{ key : value } // 중괄호 전체가 Property
let person = {
name : 'James',
age : 25,
email : 'abc@gamil.com'
}
// Dot Notation
Obejct.Property key값
Person.name; // 'james'
Person.email; // 'abc@gamil.com'
//bracket Notation
Obejct['Property key 값']
Person['name'] // 'james'
Person['email'] // 'abc@gamil.com'
Notation의 차이점이라 할 수 있는 매개변수로인해 점은 key값이 동적으로 변할 때는 Braket Notaiotn만 사용할 수 있습니다. 아래의 코드를 보면 Dot Notation의 경우에는 getProperty 함수의 매개변수로 PopertyName을 받을 경우 undfined가 출력 됩니다.
let person = {
name : 'James',
age : 25,
email : 'abc@gamil.com'
}
function getProperty(obj, propertyName) {
return obj.propertyName // obj에 propertyName이라는 Key가 있을 때만 사용이 가능하다.
}
getProperty(person, 'name'); // undefined;
function getProperty(obj, propertyName) {
return obj[propertyName] // 매개변수의 propertyName의 값이 달라져도 객체의 value값을 반환할 수 있다.
}
getProperty(person, 'name'); // james
Property를 삭제하는데 사용합니다.
delete person.age; // cat 객체에서 age key를 삭제
delete person['age']; // cat 객체에서 age key를 삭제
객체에 특정 Property가 존재하는지 여부를 true or false 반환합니다.
let person = {
name : 'James',
age : 25,
email : 'abc@gamil.com'
}
'age' in person // true
'name' in person // true
'birthday' in person // false
객체의 Property의 value값으로 함수선언문을 추가할 수 있고 선언된 함수를 객체의 메소드로 사용할 수 있습니다.
object.Method();
let person = {
name : 'James',
age : 25,
email : 'abc@gamil.com',
run : function() {
console.log('100m 기록 11초')
}
}
person.run() // '100m 기록 11초')
객체의 key값들은 모은 배열을 생성합니다.
let person = {
name : 'James',
age : 25,
email : 'abc@gamil.com',
run : function() {
console.log('100m 기록 11초')
}
}
Object.keys(person) // ['name', 'age', 'email', 'run']
객체의 value값들은 모은 배열을 생성합니다.
let person = {
name : 'James',
age : 25,
email : 'abc@gamil.com',
run : function() {
console.log('100m 기록 11초')
}
}
Object.values(person) // ['James', 25, 'abc@gamil.com', ƒ]
객체의 각 key값과 value값을 가지는 배열을 포함하는 배열을 생성합니다.
let person = {
name : 'James',
age : 25,
email : 'abc@gamil.com',
run : function() {
console.log('100m 기록 11초')
}
}
Object.entries(person)
// ['name', 'James'], 'name', 'James'], ['email', 'abc@gamil.com'], ['run', ƒ]]
객체에서 in 반복문을 사용할 경우 배열과 달리 객체의 전체 key값을 한바퀴 순환 됩니다. 반복문을 확용하여 key값에 맞는 value값을 쉽게 가져올 수 있습니다.
let person = {
name : 'James',
age : 25,
email : 'abc@gamil.com',
run : function() {
console.log('100m 기록 11초')
}
}
for(key in person) {
console.log(key)
}
// name
// age
// email
// run