메서드 작성해보기
const mike = {
name: "Mike",
position: ["chief", "line-cook manager"],
age: 25,
fulltime: true,
secondRole: function(){
console.log(mike.position[1])
}
};
mike.secondRole();
//"line-cook manager"
mike.name
로 "Mike" 불러오는 것처럼 메소드 또한 mike.secondRole()
로 접근한다.const mike = {
name: "Mike",
position: ["chief", "line-cook manager"],
age: 25,
fulltime: true,
experiences: {
asia : {
korea : "2years",
china : "1year",
thailand : "3years"
},
america : {
mexico : "6months",
canada : "2years"
},
certificates : {
food: [{
name: "Fried Chicken",
licenseNumber: 25
}, {
name: "Rice noodle",
licenseNumber: 423
}, {
name: "Fries with Gravy",
licenseNumber: 574
}]
}
},
secondRole: function(){
console.log(mike.position[1])
}
};
위에서 423 을 출력하려면 어떻게 해야할까?
//certificates의 value까지 접근하기
mike.experiences.certificates
mike.experiences.certificates.food
index number
1번 째에 있으며 배열 안의 객체에서 key 이름licenseNumber
의 value이다.mike.experiences.certificates.food[1].licenseNumber
//너무 기니깐 변수에 담아보자
const result = mike.experiences.certificates.food[1].licenseNumber
console.log(result);
// 423
객체를 변수에 저장하면 객체 자체가 저장되는 것이 아니라 reference가 저장된다.
Object, array, function
등 원시형이 아닌 모든 데이터 타입을 참조형 reference이다.
반대로, 텍스트는 변수에 저장하면 텍스트 자체가 저장된다. 그래서 서로 같은 텍스트를 비교연산 하면 서로 값이 같으므로 true 이다.
String, Number, Boolean, Null,undefined
의 데이터 타입은 모두 원시형 primitive이다.
원시형 데이터 String비교
const a = '안녕'; const b = '안녕'; console.log(a === b); //true
BUT!! 아래의 객체는 생긴 모양이 아예 똑같은데 false 라고 출력된다.
const hiObj = { name: '안녕' }; const helloObj = { name: '안녕' }; console.log(hiObj === helloObj); //false
자세한 내용은 [데이터의 불변성] 포스트를 추후 작성한다면 그때 다시 다룰 것이다.