
객체란 여러 속성을 하나의 변수에 저장할 수 있게 해주는 데이터 타입으로 key-value pair를 저장할 수 있는 구조다.
let uid = new Object();
let uid = {};
<예시>
key: "이름", "나이"
value: "hoon", 26
let uid = {
name: "hoon",
age: 26
}
프로퍼티는 접근 가능한 값인 Key와, 활용 가능한 값인 vaule를 가지는 구조다.
key: 빈 문자열을 포함한 모든 문자열 및 기호
value: 모든 값
프로퍼티의 추가는 .연산자를 통해 가능하다.
let foo = {}; // foo 객체 생성
foo.a = 1; // .연산자를 통해 a라는 이름의 프로퍼티 생성하며 1이라는 값 할당
let sum = foo.a + 1; // .연산자를 통해 foo 객체의 a 프로퍼티에 접근하여 해당 값을 활용
console.log(sum); // 2
Javascript에서는 사용하는 변수의 값을 할당하지 않고 선언만 하는 경우 자동으로 undefined를 할당한다. 하지만 정보를 담고 있어야 하는 프로퍼티가 값을 할당받지 않았다면 객체로서의 역할을 수행하지 못하기 때문에 Syntax Error가 발생한다.
Javascript의 프로퍼티는 null 혹은 undefined를 할당한다고 삭제되지 않는다. 프로퍼티를 삭제하기 위해서는 delete 연산자를 활용하여야 한다.
let foo = {};
foo.name = "hoon";
console.log(foo.name); // "hoon"
foo.name = null;
console.log(foo.name); // null
delete foo.name;
console.log(foo.name); //undefined
let uid = {
name : "hoon",
age: 26,
gender: "male"
}
let userName = uid["name"];
let userAge = uid["age"];
console.log(userName); // "hoon"
console.log(userAge); // 26
let userName = uid.name;
let userAge = uid.age;
console.log(userName); // "hoon"
console.log(userAge); // 26
let uid = {
name: "hoon",
age: 26
}
console.log(uid.age); // 26
uid.age = 20; // 객체 수정 uid["age"] = 20; 도 가능
console.log(uid.age) // 20
in 연산자를 통해 객체에 프로퍼티가 존재하는지 확인할 수 있다.
let uid = {
name: "hoon",
age: 26
}
console.log("name" in uid); // true
console.log("gender" in uid); // false
let uid = {
name: "hoon",
age: 26
}
for(let key in uid){
console.log(`key는 ${key}, value는 ${uid.key}입니다.)`
}
// key는 name, value는 hoon입니다.
// key는 age, value는 26입니다.ㄷ