객체란 여러 속성을 하나의 변수에 저장할 수 있게 해주는 데이터 타입으로 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입니다.ㄷ