SEB FE / Section1 / Unit9 / JavaScript ๋ฐฐ์ด, ๊ฐ์ฒด
๐ Today I Learned
- ๊ฐ์ฒด(Object)
ํ๋์ ๋ณ์ ์์ ์ฌ๋ฌ ๊ฐ์ง์ ์ ๋ณด๊ฐ ๋ด๊ฒจ์ ธ ์์ ๋ ์ ํฉํ ์๋ฃ ๊ตฌ์กฐ
๊ฐ์ฒด ์ ์ธ์ ์๋์ ๊ฐ์ด ํ ์ ์๋ค
๊ฐ์ฒด๋ ํค์ ๊ฐ ์(key-value pair)์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค
let user = {
firstName: 'meoing',
lastName: 'choi',
email: 'meoing@velog.com',
city: 'Seoul'
};
๊ฐ์ฒด์ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง๊ฐ ์๋ค.
.
์ ๊ฐ์ฒด์ ์์ฑ์ ๊ฐ์ ธ์ค๋ ๊ฒ (์ ์ ์ ์์ฑ)let user = {
firstName: 'meoing',
lastName: 'choi',
email: 'meoing@velog.com',
city: 'Seoul'
};
user.firstName;
// 'meoing'
user.city;
// 'Seoul'
๋์ ์ธ ๊ฐ์ ํ ๋นํ ๋ ์ฌ์ฉํ๋ค.
ํค๊ฐ์ด ๋์ ์ผ๋ก ๋ณํ ๋, ํค๊ฐ์ด ๋ณ์์ผ ๋ Bracket notation์ ์ด๋ค.
let user = {
firstName: 'meoing',
lastName: 'choi',
email: 'meoing@velog.com',
city: 'Seoul'
};
user['firstName'];
// 'meoing'
user['city']
// 'Seoul'
let tweet = {
writer: 'monge',
createdAt: '2022-11-03 20:38:33',
content: '๋ฐฐ๊ฐ ๋ถ๋ฅด๋ค!'
}
// monge๋ผ๋ ์์ด๋๋ฅผ ๊ฐ์ง ์ ์ ๊ฐ SNS์ ์๋ก์ด ๊ธ์ ์ฌ๋ ธ๋ค.
// ๊ทธ๊ฐ ์์ฑํ ๊ธ "๋ฐฐ๊ฐ ๋ถ๋ฅด๋ค!"๋ผ๋ ๋ด์ฉ์ bracket notation์ผ๋ก ์ด๋ป๊ฒ ๊ฐ์ ธ์ฌ ์ ์์๊น?
/* dot notation */
tweet.writer
// "monge"
tweet.content
// "๋ฐฐ๊ฐ ๋ถ๋ฅด๋ค!"
/* braket notation */
tweet['writer'];
// "monge"
tweet['content'];
// "๋ฐฐ๊ฐ ๋ถ๋ฅด๋ค!"
tweet['content']
// "๋ฐฐ๊ฐ ๋ถ๋ฅด๋ค!"
// ํค-๊ฐ์ ๊ฐ์ ธ์จ๋ค
tweet[content]
// ReferenceError: content is not defined
// ''๋ฅผ ๊ฑท์ด๋ด๋ ํค-๊ฐ์ด ์๋๋ผ ๋ณ์์ ๊ฐ์ผ๋ก ์ธ์ ์ค
// ๊ฐ์ฒด์ ํญ์ ๋ฌธ์์ด๋ก ๋๊ฒจ ์ฃผ๊ฑฐ๋ ๋ณ์์ ํ ๋นํ์ฌ ์ฌ์ฉํด์ผ ํ๋ค.
let person = {
name: 'meoing',
age: 20
};
function getProperty(obj, propoertyName) {
return obj[propoertyName];
}
// 1
let output = getProperty(person, 'name');
console.log(output); // --> 'meoing'
// 2
let output2 = getProperty(person, 'age');
console.log(output2); // --> '20'
//
tweet['category'] = '์ก๋ด';
tweet.isPublic = true;
tweet.tags = ['#ํธ์', '#๋ฐ์ผ๋ฆฌ'];
let tweet = {
writer: 'monge',
createdAt: '2022-11-03 20:38:33',
content: '๋ฐฐ๊ฐ ๋ถ๋ฅด๋ค!'
}
// createdAt ํค-๊ฐ ์์ ์ง์ด๋ค
delete tweet.createdAt;
// tweet์ ๋ค์๊ณผ ๊ฐ๊ฒ ๋๋ค
// { writer: 'monge', content: '๋ฐฐ๊ฐ ๋ถ๋ฅด๋ค!'
๊ฐ์ฒด ์์ ํด๋น ํค-๊ฐ์ด ์๋์ง ํ์ธํ์ฌ ๋ถ๋ฆฌ์ธ ๊ฐ์ ๋ฐํํ๋ ์ฐ์ฐ์์ด๋ค.
let tweet = {
writer: 'monge',
createdAt: '2022-11-03 20:38:33',
content: '๋ฐฐ๊ฐ ๋ถ๋ฅด๋ค!'
}
'content' in tweet;
// true
'updatedAt' in tweet;
// false