kohigowild
JavaScript ๊ฐ์ฒด(Object)์ ๊ธฐ์ด ๋ณธ๋ฌธ
๐ ๊ฐ์ฒด(Object)์ ๊ธฐ๋ณธ ์ ์
- ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ์ฒด ๊ธฐ๋ฐ์ ์คํฌ๋ฆฝํธ ์ธ์ด์ด๊ณ , ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด๋ฃจ๊ณ ์๋ ๋๋ถ๋ถ์ ๊ฒ๋ค์ด ๊ฐ์ฒด๋ก ์กด์ฌํ๋ค. ๋ฐ๋ผ์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ธฐ์ด๋ฅผ ๋ค์ง๊ธฐ ์ํด์ ๊ฐ์ฒด์ ๋ํ ์ดํด๋ ํ์์ ์ด๋ค.
- ์๋ฐ์คํฌ๋ฆฝํธ์๋ ์ด 8๊ฐ์ง์ ์๋ฃํ์ด ์๋ค.
- ๋ฌธ์(String)
- ์ซ์(Number)
- Bigint: ๊ธธ์ด ์ ์ฝ ์์ด ์ ์๋ฅผ ๋ํ๋ผ ์ ์๋ค.
- ๋ถ๋ฆฌ์ธ(Boolean)
- ์ฌ๋ณผ(Symbol): ๊ฐ์ฒด์ ๊ณ ์ ํ ์๋ณ์๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉํ๋ค.
- Null: ๋ฏธ์ง์ ๊ฐ์ ๋ปํ๋ฉฐ, ํ์ ์ ์กด์ฌํ์ง๋ง ๊ฐ์ ์๋ค.
- Undefined: ๊ฐ๋ ์๊ณ , ํ์ ๋ ์ง์ ๋์ง ์์ ์ํ
- Object
- ์ด๋ค ์ค Object๋ฅผ ์ ์ธํ ๋๋จธ์ง๋ ์ค์ง ํ๋์ ๋ฐ์ดํฐ๋ง ๋ด์ ์ ์์ด ์์ํ(Primitive type)์ด๋ผ ๋ถ๋ฅธ๋ค. Object๋ ํค(Key)์ ๊ฐ(Value)์ผ๋ก ๊ตฌ์ฑ๋ ํ๋กํผํฐ(Property)๋ค์ ์งํฉ์ผ๋ก, ์์ํ๊ณผ ๋ฌ๋ฆฌ ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ์๋ค.
- ํ๋กํผํฐ ๊ฐ์ผ๋ก ํจ์๋ฅผ ์ฌ์ฉํ ์๋ ์์ผ๋ฉฐ, ํ๋กํผํฐ ๊ฐ์ด ํจ์์ผ ๊ฒฝ์ฐ ์ผ๋ฐ ํจ์์ ๊ตฌ๋ถํ๊ธฐ ์ํด ๋ฉ์๋(Method)๋ผ ๋ถ๋ฅธ๋ค.
๐ ํ๋กํผํฐ(Property)
let user = {
name: "Mitt",
age: 28,
};
์ค๊ดํธ {…} ์์ ํค: ๊ฐ ์์ผ๋ก ๊ตฌ์ฑ๋ ํ๋กํผํฐ ์์๋ฅผ ์์ฑํ์๋ค.
- ์ฝ๋ก ์ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ์๋ ํค(์ด๋ฆ or ์๋ณ์)๊ฐ, ์ค๋ฅธ์ชฝ์๋ ๊ฐ์ด ์์นํ๋ค.
- ๊ฐ์ฒด user์๋ ํ๋กํผํฐ ๋ ๊ฐ๊ฐ ์๋ค.
- ์ฒซ ๋ฒ์งธ ํ๋กํผํฐ: “name”(์ด๋ฆ)๊ณผ “Mitt”(๊ฐ)
- ๋ ๋ฒ์งธ ํ๋กํผํฐ: “age”(์ด๋ฆ)๊ณผ 28(๊ฐ)
- ๊ฐ์ฒด์ ํน์ ํ๋กํผํฐ ๊ฐ์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ, ๊ฐ์ฒด์ด๋ฆ.ํ๋กํผํฐ์ด๋ฆ or ๊ฐ์ฒด์ด๋ฆ[”ํ๋กํผํฐ์ด๋ฆ”] ํ์์ผ๋ก ์ ๊ทผํ๋ค. ์์ ์์์์ console.log๋ก age ๊ฐ๋ง ์ถ๋ ฅํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ,
- console.log(user.age);
- console.log(user[”age”]);
๐ ๊ฐ์ฒด(Object)์ ์์ฑ
- ๊ฐ์ฒด ๋ฆฌํฐ๋ด
- ๊ฐ์ฒด ์์ฑ ๋ฐฉ์ ์ค ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก, ์ปจํ ์ธ ๋ฅผ ๊ทธ๋๋ก ๋์ ํ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ค.
- ์๋์ ๊ฐ์ด key : value ํ์์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ ๋ ฅํ๋ ๋ฐฉ๋ฒ์ด๋ค.
let obj = {
mitt: 28,
sophie: 26,
pickle: 23,
};
- Object()
- new Object()๋ฅผ ํธ์ถํ๋ฉด ๋น์ด ์๋ ๊ฐ์ฒด๋ฅผ ํธ์ถํ๋ค. ๋ฐ๋ผ์ ๊ฐ์ฒด ์์ฑ ์ดํ ํ๋กํผํฐ๋ฅผ ๋ฐ๋ก ์ถ๊ฐํด ์ค์ผ ํ๋ค.
let obj = new Object();
obj.name = "mitt";
obj.age = "28";
console.log(obj); // { name: 'mitt', age: '28' }
console.log(obj.name); // mitt
- ์์ฑ์ ํจ์
- ๋ฌธ๋ฒ์ด Java์ ์ ์ฌํ๋ฉฐ, ๊ธฐ์กด ํจ์์ new ์ฐ์ฐ์๋ฅผ ๋ถ์ฌ์ ํธ์ถํ๋ฉด ํด๋น ํจ์๋ ์์ฑ์ ํจ์๋ก ๋์ํ๋ค. ์์ฑ์ ํจ์์ ์ฒซ ๋ฌธ์๋ ๋๋ฌธ์๋ก ํ๊ธฐํ๋ ๊ฒ์ด ๊ด๋ก์ด๋ค.
- ์ฌ๋ฌ ๊ฐ์ ๋์ผํ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด ํ์ํ๋ค.
function Person(name, age) {
this.name = name;
this.age = age;
this.job = "student";
}
let person1 = new Person("mitt", "28");
let person2 = new Person("sophie", "26");
console.log(person1); // Person { name: 'mitt', age: '28', job: 'student' }
console.log(person2.name + " " + person2.age + " " + person2.job); // sophie 26 student
- Object.create()
- ๋ช ์์ ์ผ๋ก ํ๋กํ ํ์ ์ ์ง์ ํด์ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค. ์ฃผ๋ก ์์์ ํํํ ๋ ์ฌ์ฉํ๋ค.
let fruit = Object.create(Object.prototype, {
name: {
value: "์ฌ๊ณผ",
writable: true,
enumerable: true,
configurable: true,
},
brix: {
value: 10,
writable: true,
enumerable: true,
configurable: true,
},
});
- ES6 ํด๋์ค
- ECMAScript 5๊น์ง ์๋ฐ์คํฌ๋ฆฝํธ์๋ ๊ฐ์ฒด ์์ฑ์ ์ํ ์ค๊ณ๋์ธ ํด๋์ค๊ฐ ์์๋ค.
- ECMAScript 6๋ถํฐ ์ด๋ฅผ ์ง์ํ๋ค. ๋ค๋ฅธ ์ธ์ด๋ค๊ณผ ๋น์ทํ ํํ๋ก ๊ฐ์ฒด ๋ฐ ๊ฐ์ฒด๊ฐ ๊ฐ์ง ๋ฉ์๋๋ฅผ ์ ์ํ ์ ์๋๋ก ์ ๊ณตํ๋ค.
class Person {
constructor(name, age, major) {
this.name = name;
this.age = age;
this.major = major;
}
id() {
return `${this.name}${this.age}${this.major}`;
}
}
let p1 = new Person("mitt", 28, "business");
let p2 = new Person("pickle", 23, "laws");
console.log(p1); // Person { name: 'mitt', age: 28, major: 'business' }
console.log(p2.id()); // pickle23laws
๐ ํ๋กํ ํ์ (Prototype)
- ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฐ์ฒด๋ ํ๋กํ ํ์ ์ด๋ผ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๋ค. ๋ชจ๋ ๊ฐ์ฒด๋ ๊ทธ๋ค์ ํ๋กํ ํ์ ์ผ๋ก๋ถํฐ ํ๋กํผํฐ์ ๋ฉ์๋๋ฅผ ์์ ๋ฐ๋๋ค.
- ์ด์ฒ๋ผ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฐ์ฒด๋ ์ต์ํ ํ๋ ์ด์์ ๋ค๋ฅธ ๊ฐ์ฒด๋ก๋ถํฐ ์์์ ๋ฐ์ผ๋ฉฐ, ์ด๋ ์์๋๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๊ฐ์ฒด๋ฅผ ํ๋กํ ํ์ ๊ฐ์ฒด, ํน์ ํ๋กํ ํ์ ์ด๋ผ๊ณ ํ๋ค.
๐ For … in
- ๋ฐฐ์ด์์๋ ๋จ์ For๋ฌธ์ผ๋ก๋ key์ value๋ฅผ ๊บผ๋ผ ์ ์๋๋ฐ, ๊ฐ์ฒด๋ฅผ ๋ค๋ฃฐ ๋๋ ๋จ์ For๋ฌธ์ผ๋ก๋ ๋ถ๊ฐ๋ฅํ๋ค. ๋ฐ๋์ For … in ๋ฌธ์ ์ฌ์ฉํด์ผ ํ๋ค. — For in ๋ฌธ์ ๋๋ฆฌ๋ฉด์ ์ํ๋ ๊ฐ ์ง์
// ๋จ์ For ๋ฌธ ์ฌ์ฉ --> Case 1 :: Array
let arr = ["mitt", "jerry", "tom", "nick"];
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
} // mitt jerry tom nick
console.log("==========================");
// For in ๋ฌธ ์ฌ์ฉ --> Case 2 :: Object
let person = {
name: "mitt",
age: 28,
gender: "female",
};
for (let key in person) {
console.log("key: ", key);
console.log("value: ", person[key]);
}
'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JavaScript ํ๋กํ ํ์ ๊ณผ ํ๋กํ ํ์ ์ฒด์ธ (0) | 2022.10.21 |
---|---|
JavaScript ํ(Queue), ์คํ(Stack), ํธ๋ฆฌ(Tree) (0) | 2022.10.20 |
JavaScript ์ ๊ท ํํ์(Regular Expression) (0) | 2022.10.16 |
JavaScript ๋ฐฐ์ด ๊ณ ์ฐจ ํจ์(Higher-Order Function) (0) | 2022.10.13 |
JavaScript Map() ๋ฉ์๋ ์ดํดํ๊ธฐ (0) | 2022.10.04 |