๐ก ๊ฐ์ฒด์ ๋ฐฐ์ด์ ์์ํ์ ์ด ์๋ ์ฐธ์กฐ (reference) ํ์
- ์์ ๋ค๋ฃฌ ์๋ฃํ๋ค์ ์์ (primitive) ํ์
1. ๊ฐ์ฒด ๋ฏธ๋ฆฌ๋ณด๊ธฐ
- ์๋ฐ์คํฌ๋ฆฝํธ์์ ์์ ํ์ ์ด ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ ๊ทผ๋ณธ์ ์ผ๋ก ๊ฐ์ฒด
- ๋ณตํฉ์ ์ธ ์ ๋ณด๋ฅผ ํ๋กํผํฐ(property)๋ก ์ ์ฅํ๋ ์๋ฃํ - ํค์ ๊ฐ์ ์กฐํฉ
const objName = {
key1: value1,
key2: value2,
...
};
// โ ๏ธ ๋ธ๋ก์ด ์๋!
const person1 = {
name: '๊น์ฒ ์',
age: 25,
married: false
};
console.log(typeof person1); // object
console.log(person1); // {name: '๊น์ฒ ์', age: 25, married: false}
(1) ํ๋กํผํฐ ์ ๊ทผ
๐ก ์์ฑ๊ฐ์ ์ ๊ทผํ๋ ๋ ๋ฐฉ๋ฒ
console.log(
person1.name,
person1.age,
person1.married
); // ๊น์ฒ ์ 25 false
console.log(
person1['name'], // ์์ฑ๋ช
์ string์ผ๋ก
person1['age'],
person1['married'],
); // ๊น์ฒ ์ 25 false
๐ก ์กด์ฌํ์ง ์๋ ํค๋ก ์ ๊ทผ์ undefined ๋ฐํ
console.log(person1.birthdate); // undefined
console.log(person1['job']); // undefined
๐ก ํค in ๊ฐ์ฒด - ํน์ ํค ํฌํจ ์ฌ๋ถ ํ์ธ
console.log(
'age' in person1,
'job' in person1
); // true false
(2) ํ๋กํผํฐ ์์ ๋ฐ ์ถ๊ฐ
๐ก ํน์ ํ๋กํผํฐ์ ๊ฐ ๋ณ๊ฒฝ
person1.age = 26;
person1['married'] = true
console.log(person1); // {name: '๊น์ฒ ์', age: 26, married: true}
๐ก ์ ํ๋กํผํฐ ์ถ๊ฐ
person1.job = 'developer';
person1['bloodtype'] = 'AB'
console.log(person1); // {name: '๊น์ฒ ์', age: 26, married: true, job: 'developer', bloodtype: 'AB'}
- const ์์๋ ๊ทธ ๋ด์ฉ์ ์์ ํ ์ ์์
2. ๋ฐฐ์ด ๋ฏธ๋ฆฌ๋ณด๊ธฐ
const winners = [12, 592, 7, 48];
const weekdays = ['์', 'ํ', '์', '๋ชฉ', '๊ธ', 'ํ ', '์ผ'];
// ์๋ฃํ์ ๊ด๊ณ์์ด ํ ๋ฐฐ์ด์ ๋ฃ์ ์ ์์
const randoms = ['ํ๊ธธ๋', -24, true, null, undefined];
console.log(typeof winners); // object
console.log(winners, weekdays, randoms);
// [12, 592, 7, 48]
// ['์', 'ํ', '์', '๋ชฉ', '๊ธ', 'ํ ', '์ผ']
// ['ํ๊ธธ๋', -24, true, null, undefined]
(1) ๊ฐ๊ณผ ๊ธธ์ด ์ ๊ทผ
๐ก ํน์ ์์์ ๊ฐ์ ์ ๊ทผํ๋ ๋ฒ (0๋ถํฐ ์์)
console.log(winners[0], weekdays[6], randoms[3]); // 12 '์ผ' null
๐ก ๋ฐฐ์ด์ ๊ธธ์ด(์์์ ๊ฐฏ์)๋ฅผ ์ป๋ ๋ฒ
console.log(winners.length, weekdays.length, randoms.length); // 4 7 5
console.log(winners['length'], weekdays['length'], randoms['length']); // 4 7 5
๐ก ๋ง์ง๋ง ์์ ์ป๊ธฐ
console.log(winners[winners.length - 1]); // 48
(2) ์์ ๋ฐ ์ถ๊ฐ
๐ก ํน์ ์์น์ ๊ฐ ์์
const numbers = [1, 2, 3];
// ํน์ ์์น์ ๊ฐ ์์
numbers[2] = 5;
console.log(numbers); // [1, 2, 5]
๐ก ๋ฐฐ์ด์ ๋งจ ๋์ ๊ฐ ์ถ๊ฐ : push()
// ๋งจ ๋์ ๊ฐ ์ถ๊ฐ
numbers.push(10);
console.log(numbers); // [1, 2, 5, 10]
- const ์์๋ ๊ทธ ๋ด์ฉ์ ์์ ํ ์ ์์
๐ก ๋ฐฐ์ด์ ๋ฒ์ฃผ ๋๋จธ๋ก ์ ๊ทผ์ undefined ๋ฐํ
const winners = [12, 592, 7, 48];
console.log(winners[winners.length]); // undefined
โญ๏ธ ์ค์ฒฉ ์ฌ์ฉ ๊ฐ๋ฅ
const person2 = {
name: '๊น๋ฌ์',
age: 23,
languages: ['Korean', 'English', 'French'],
education: {
school: 'ํ๊ตญ๋',
major: ['์ปดํจํฐ๊ณตํ', '์ ์๊ณตํ'],
graduated: true,
}
};
console.log(person2.languages[2]); // French
console.log(person2.education.graduated); // true
const groups = [[1, 2], [3, 4, 5], [6, 7, 8, 9]];
const weapons = [
{ name: '๋กฑ์๋', damage: 30, design: ['ํ๋ฃก๊ฒ', '๋์ ๊ฒ'] },
{ name: 'ํ', damage: 12 },
{ name: '์ํด๋จธ', damage: 48 },
];
console.log(groups[1][2]); // 5
console.log(weapons[2].damage); // 48
console.log(weapons[0].design[0]); // ํ๋ฃก๊ฒ
์ ๋ฆฌ์ฐธ์กฐ
https://www.yalco.kr/@javascript/2-9/
'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํด๋ฆญ ์ด๋ฒคํธ๊ฐ ์์ ์์๋ก ์ ํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๋ฐฉ๋ฒ (0) | 2023.06.12 |
---|---|
element.classList.add()์ element.classList.toggle()์ ์ฐจ์ด์ (0) | 2023.05.25 |
๊ทธ ์ธ์ ์ฐ์ฐ์๋ค (0) | 2023.03.05 |
๋ถ๋ฆฌ์ธ(boolean)๊ณผ ๊ด๋ จ ์ฐ์ฐ์ (0) | 2023.03.05 |
์ซ์(Number)์ ๊ด๋ จ๋ ์ฐ์ฐ์ (0) | 2023.03.05 |