์์ํ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ JS ๊ตฌ์กฐ ๋ถํด ํ์ฉ๋ฒ 3๊ฐ์ง
์์ํ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ JS ๊ตฌ์กฐ ๋ถํด ํ์ฉ๋ฒ 3๊ฐ์ง ๊ด๋ จ
IT ์ง์์ด ๋ฌด์๋ณด๋ค ์ค์ํด์ง ์์ฆ, ์ฌ๋ฌ๋ถ์ ์ด๋ป๊ฒ ๊ณต๋ถํ๊ณ ์๋์? ๊ฐ์ฅ ๋จผ์ ๋๊ธธ์ด ๊ฐ๋ ๊ฑด ๋ค์ํ IT ๊ฐ์ ์์์ผ ๊ฒ๋๋ค. ๊ฐ์๋ฅผ ์ ๊ณตํ๋ ๊ต์ก ๊ธฐ์ ๋ค๊ณผ ํจ๊ป, ์์ฆIT์์ โIT ๊ฐ์ ์๋ฆฌ์ฆโ๋ฅผ ์ค๋นํ์ต๋๋ค. ์์ ํ ๊ต์ก ์์์ ํ ์คํธ๋ก ์ฝ๊ณ ํ์ํ ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ๊ฐ์ ธ๊ฐ์ธ์.
์ด๋ฒ ๊ฐ์๋ โWeb ๊ฐ๋ฐ์ ๋ถํธ์บ ํ 2024: JavaScript์ ์ต์ ๊ธฐ๋ฅ๋คโ์ ๋๋ค. ๊ฐ๋ฐ์์ด์ ๋ถํธ์บ ํ ๊ฐ์ฌ๋ก ํ๋ํ๋ฉฐ ์ ์ธ๊ณ 175๋ง ๋ช ์ด์ ์๊ฐ์์ ๋ฐฐ์ถํ ์ฝํธ ์คํธ(Colt Steele) ๋์ด ๊ฐ์๋ฅผ ๋งก์์ต๋๋ค. ์์ํ๋ ๊ฐ๋ฐ์๋ฅผ ์ํด ์ฝ๋ ์์ฑ์ ๋์์ด ๋๋ JavaScript ๊ธฐ๋ฅ์ ์๊ฐํฉ๋๋ค. ์์ด๋ก ์งํํ ๊ฐ์์ ๋ฒ์ญ๋ณธ์ ๊ธฐ์ด๋ก ๊ธ์ ๊ตฌ์ฑํ๊ณ , ์ ์ฒด ์์์ ์ ๋ฐ๋ฏธ์์ ํ์ธํ ์ ์์ต๋๋ค.
์๋ ํ์ธ์, ๊ฐ๋ฅด์น๋ ์ผ์ ์ง์ฌ์ผ๋ก ์ฌ๋ํ๋ ๊ฐ๋ฐ์ ์ฝํธ ์คํธ์ ๋๋ค. ์ด๋ฒ์ ๋ฐฐ์ธ ๊ฒ์ ๊ตฌ์กฐ ๋ถํด์ ๋๋ค. ์ด ๊ตฌ๋ฌธ์ผ๋ก๋ ๊ฐ์ ํด์ฒดํ๊ณ ๊บผ๋ด๊ณ ์ ์ ํ ์ ์์ต๋๋ค. ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด์ ์ ์ฉํ ์ ์์ฃ . ์ด๋ค์ ํด์ฒดํด ๋ณ๊ฐ ๋ณ์ ํํ๋ก ๋ง๋ค ์๋ ์๊ณ ์.
ํธํ๊ฒ ์ฝ๋๋ฅผ ์ฐ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ํฐ ๋์์ ์ค ๊ฒ๋๋ค. ์์ํด ๋ณผ๊น์?
๋ฐฐ์ด ๋ถํด
๋ฐฐ์ด๋ถํฐ ์์ํฉ์๋ค. ์์๋ฅผ ๋ณผ๊ฒ์.
์๋ ๋ฐฐ์ด์๋ ์ ์๊ฐ ์์๋๋ก ์ฐ์ฌ ์์ต๋๋ค. ์ด ์ ์๋ฅผ ํ๋ณผ ๊ฒ์์ ์ ์๋ผ๊ณ ํด๋ด ์๋ค.
const scores = [929321, 899341, 888336, 772739, 543671, 243567, 111934];
์ด ๊ฐ์ด๋ฐ 1์์ 2์์ ์ ์๋ฅผ ๋ฐ๋ก ๊บผ๋ด์ ๋ณด์์ ์ฃผ๊ณ , ๋๋จธ์ง๋ ๋ณ๊ฐ ๋ณ์๋ก ๋ถ๋ฆฌํ๊ณ ์ถ์ต๋๋ค. ์ด๋ป๊ฒ ํ๋ฉด ์ข์๊น์?
const scores = [929321, 899341, 888336, 772739, 543671, 243567, 111934];
const highscore = scores[0];
const secondHighScore = scores[1];
์์ ๊ฐ์ด score[0]
๋ฅผ ์
๋ ฅํด 1์ ์ ์๋ฅผ ์ฐ์ ์ ์ ํ๊ณ ๊ทธ ์๋์๋ score[1]
์ ์
๋ ฅํด 2์ ์ ์๋ฅผ ์ ์ ํ์ต๋๋ค. ๊ทธ๋ญ์ ๋ญ ๊ด์ฐฎ์ ๋ฐฉ๋ฒ์ด์ง๋ง, ์ด๋ณด๋ค ๋ ๊ฐํธํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋ถํด๋ฅผ ์ด์ฉํ๋ ๊ฑฐ์ฃ . ์ด๋ฅผ ํ์ฉํด ๋ง๋ ๋ ์งง์ ๊ตฌ๋ฌธ์ ์๋ ํ์์ ํ์ฉํฉ๋๋ค.
const [] = scores;
์ด ๋ฐฐ์ด ๋๊ดํธ ์์ ์ฒซ ๋ฒ์งธ ๊ฐ์ gold
, ๋ ๋ฒ์งธ ๊ฐ์ silver
๋ผ๊ณ ๋ถ๋ฅด๋๋ก ํ๊ฒ ์ต๋๋ค.
const [gold, silver] = scores;
์ด์ ์ฝ์์์ gold
, silver
๋ฅผ ์
๋ ฅํ๋ฉด ์ด๋ค ๊ฐ์ด ๋์ฌ๊น์?
score
s์ ์ฒซ ์์๊ฐ gold
์, ๋ ๋ฒ์งธ ์์๋ silver
๋ผ๋ ๋ณ์์ ์ ์ฅ๋์์ต๋๋ค.
์ด ์์
์ ๋ฐฐ์ด์ ๊ฐ์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค. ๊ธฐ์กด ๊ฐ์ ์ง์ฐ๋ฉฐ ์๋ก ๊บผ๋ด๋ ๊ฒ ์๋๋๊น์. ๊ฐ๋ณ ๋ณ์์ ์ ์๋ฅผ ๋ณต์ฌํด ์ฐ๋ ๊ฒ์ผ ๋ฟ์
๋๋ค. ๊ทธ๋์ ๊ณ์ ๋ง๋ถ์ผ ์ ์์ต๋๋ค. ๊ณง bronze
๋ฅผ ์ถ๊ฐํ๋ฉด ์ธ ๋ฒ์งธ ์ ์๊ฐ bronze
๊ฐ ๋ ๊ฒ๋๋ค. ์ด ์ธ ๊ฐ์ง ๊ฐ์ ์์๋๋ก ์ธ ๊ฐ์ ๋ณ์๋ฅผ ๋ง๋ค์์ต๋๋ค.
์ ์ ๋ค๋ฅธ ์์๋ ์ดํด๋ณผ๊ฒ์. ์ด๋ฒ์๋ ๋ฌ๋ฆฌ๊ธฐ ์ ์๋ค์ ๊ธฐ๋ก์ ๋๋ค.
const raceResults = ['Eliud Kipchoge', 'Feyisa Lelisa', 'Galen Rupp'];
const [gold, silver, bronze] = raceResults;
gold; // 'Eliud Kipchoge'
silver; // 'Feyisa Lelisa'
bronze; // 'Galen Rupp'
const [fastest, ...everyoneElse] = raceResults;
fastest; // 'Eliud Kipchoge'
everyoneElse; // ['Feyisa Lelisa', 'Galen Rupp']
์ฌ๊ธฐ๋ gold
, silver
, bronze
์์ผ๋ก ๊ฒฝ์ฃผ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋์ต๋๋ค. ์ด์ฒ๋ผ ๋ฐฐ์ด์ ๊ตฌ์กฐ ๋ถํดํ ๋๋ ๋๊ดํธ๋ฅผ ์์ง ๋ง์์ผ ํฉ๋๋ค. ์ด ๋๊ดํธ๋ ๋ฐฐ์ด์์ ๋ถํดํ ๊ฒ์ ์ด๋ป๊ฒ ์ง์นญํ ์ง ์ ํฉ๋๋ค.
๋๋จธ์ง ์ฐ์ฐ์์ ํจ๊ป ์ฐ๊ธฐ
๋ค์ ํ๋ณผ ๊ฒ์ ์์๋ก ๋์๊ฐ ๋ด
์๋ค. ์ด ์์์์๋ ์ ์ ๊ฐ์ด ๋ง์์ต๋๋ค. ๋ฌด๋ ค ์ผ๊ณฑ ๊ฐ์ง ๊ฐ ์ค์ ์ธ ๊ฐ๋ฅผ ๊บผ๋ด ๋จ๋
๋ณ์๋ก ๋ง๋ค์์ต๋๋ค. ์ด์ ๊ทธ ์ธ ์ ์๋ค์ ๋๋จธ์ง ๋ชจ๋(everyoneElse
)๋ผ๋ ๋ณ์์ ์ ์ฅํด ๋ณผ๊ฒ์. ์์ ์ ๊ฐ ๊ตฌ๋ฌธ์์ ๋ฐฐ์ด ๋๋จธ์ง ์ฐ์ฐ์(...
)๋ฅผ ์ด์ฉํฉ๋๋ค.
const scores = [929321, 899341, 888336, 772739, 543671, 243567, 111934];
const [gold, silver, bronze, ...everyoneElse] = scores;
์ฝ์์์ ๋๋จธ์ง ๋ชจ๋(everyoneElse
)๋ฅผ ์
๋ ฅํ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ๊น์? gold
, silver
, bronze
์ ํด๋นํ์ง ์๋ ์ ์๋ค์ด ๋์ต๋๋ค. ์ด ๋ค ๊ฐ์ ์์๊ฐ ๋์ค๋๋ฐ, ๋ชจ๋ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
๊ฐ์ฒด ๊ตฌ์กฐ ๋ถํด
๋ฐฐ์ด์ ๊ตฌ์กฐ ๋ถํด ์ญ์ ์์ฃผ ์ฐ์ด๋ ๊ตฌ๋ฌธ์ด์ง๋ง, ๋ ํํ ์ฐ์ด๋ ๊ฒ ์์ต๋๋ค. ๋ฐ๋ก ๊ฐ์ฒด ๊ตฌ์กฐ ๋ถํด์ ๋๋ค.
๊ฐ์ฒด ๊ตฌ์กฐ ๋ถํด๋ ์์๋ฅผ ๋ฐ๋ฅด์ง ์๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด ๊ตฌ์กฐ ๋ถํด๋ณด๋ค ์ค์ฉ์ ์
๋๋ค. ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๊ฐ์ง ๊ฐ์ฒด user
๋ฅผ ์๋ก ๋ณด๊ฒ ์ต๋๋ค.
const user = {
email: 'harvey@gmail.com',
password: 'sCoTt1948sMiTh',
firstName: 'Harvey',
lastName: 'Milk',
born: 1930,
died: 1978,
bio: 'Harvey Bernard Milk was an American politician and the first openly gay elected',
city: 'San Francisco',
state: 'California'
}
๋ช ๊ฐ์ง ํน์ฑ์ ์ ๊ทผํ๊ฑฐ๋ ์ ์ ํด์ผ ํ๋ ์ํฉ์
๋๋ค. ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์
๋๋ค. ์ง์ ํน์ฑ์ ๋ถ๋ฅด๋ ๊ตฌ๋ฌธ์ ์
๋ ฅํ๋ ๊ฒ๋๋ค. firstName
, lastName
, email
๊ฐ์ ๋ถ๋ฅด๋๋ก ์ง์ ์
๋ ฅํ์ต๋๋ค. ๋ฌผ๋ก ๊ฐ์ ์ํ๋ ๋๋ก ์ ๋์ต๋๋ค.
ํ์ง๋ง ์ ์ ํ๊ณ ์ถ์ ํน์ฑ์ด ์์ ๋๋ง๋ค ์ผ์ผ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ ค๋ฉด ๋งค์ฐ ๊ท์ฐฎ๊ฒ ์ฃ .
๊ฐ์ฒด์ ๊ตฌ์กฐ๋ฅผ ๋ถํดํ๊ธฐ
์ด๋ด ๋ ๊ตฌ์กฐ ๋ถํด ๊ตฌ๋ฌธ์ ์ด์ฉํ ์ ์์ต๋๋ค. let์ด๋ const
๋ค์ ์ค๊ดํธ๋ฅผ ์
๋ ฅํฉ๋๋ค. ๊ทธ ์ค๊ดํธ ์์๋ ๊ฐ๋ณ ํน์ฑ์ ๋ฃ์ด ์ค ๊ฒ๋๋ค.
const {} = user;
๋ฐฐ์ด๊ณผ๋ ๋ฌ๋ฆฌ ์ฌ๊ธฐ์ ์์๋ ์๊ด์์ต๋๋ค. ๋์ ํน์ฑ์ ์ด๋ฆ์ด ์ค์ํ์ฃ . email ๊ฐ์ ์ํ๋ค๊ณ ํด๋ด
์๋ค. ๊ทธ๋ผ ์ค๊ดํธ ์์ email
์ ์
๋ ฅํฉ๋๋ค. email
์ด ์ด๋ฆ์ธ ํน์ฑ์ ๋ถ๋ฅธ ๊ฒ๋๋ค. ๋ํ ๊ทธ์ ํจ๊ป ํน์ฑ๊ฐ์ ๊ฐ์ง email
์ด๋ผ๋ ๋ณ์๋ฅผ ๋ง๋ ๊ฒ์ด์ฃ .
const { email } = user;
ํ์ธํด ๋ด
์๋ค. ์ฝ์์์ email
์ ์
๋ ฅํ๋ฉด ์ค์ ๋ฉ์ผ ์ฃผ์๊ฐ ๋์ต๋๋ค.
์ค๊ดํธ ์์ ๋ค๋ฅธ ํน์ฑ๋ ๋ฃ์ด๋ณด๊ฒ ์ต๋๋ค. firstName
, lastName
, city, bio
๋ฅผ ๋ฃ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ด ๋ค์ฏ ๊ฐ์ ๋ณ์๊ฐ ๋ง๋ค์ด์ง ๊ฒ๋๋ค.
const { email, firstName, lastName, city, bio } = user;
์ด์ ์ฝ์์์ ๋ณ์๋ฅผ ํธ์ถํ๋ฉด ๊ฐ ํน์ฑ๊ฐ์ ๊บผ๋ผ ์ ์์ต๋๋ค.
์ฌ์ค ์๋ฐํ๊ฒ ๋งํ๋ฉด ๊บผ๋ธ ๊ฑด ์๋๋๋ค. ๊ฐ์ ๊ทธ๋๋ก ์์ผ๋๊น์. ๋์ ๋ณ์๋ก ์ง์ ํด ์ฃผ์๋ค๊ณ ํ๋ ๊ฒ ๋ง์ ๊ฒ ๊ฐ์์. ๊ฐ์ฒด ์์ฒด๋ฅผ ๋ฐ๊พผ ๊ฑด ์๋๋๋ค. ๊ฐ์ฒด์ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํ ๋ค์ฏ ๊ฐ์ ์ ๋ณ์๋ฅผ ๋ง๋ ๊ฑฐ์ฃ . ์ด ๊ธฐ๋ฅ์ ์ฌ๋ฌ๋ชจ๋ก ๋์์ด ๋ ๊ฒ๋๋ค.
๋ณ์ ์ด๋ฆ ๋ฐ๊พธ๊ธฐ
์ข ์ข ๋ณ์๋ก ํ์ฉํ๊ธฐ ์ด๋ ค์ด ์ด๋ฆ์ ๊ฐ์ง ๊ฐ์ด๋ ํน์ฑ์ด ์๋๋ฐ์. ๊ฐ์ฒด ๋ถํด๋ฅผ ํ์ฉํ๋ฉด ๊ฐ์ ๊ฐ์ฒด์์ ๊บผ๋ผ ๋ฟ ์๋๋ผ ์ ์ด๋ฆ๋ ์ง์ ์ ์์ต๋๋ค. ๋ณ์์ ์ด๋ฆ์ด ํน์ฑ์ ์ด๋ฆ๊ณผ ๊ผญ ๊ฐ์ ํ์๋ ์๋ ๊ฑฐ์ฃ .
์์์ born
๊ณผ died
ํน์ฑ์ ์ข ๋ ์๋ฐํ๊ฒ ์ถ์ ์ฐ๋(birthYear
)์ ์ฌ๋ง ์ฐ๋(deathYear
)๋ผ๊ณ ํ๊ฒ ์ต๋๋ค.
์ผ๋จ ์ถ์์ฐ๋๋ถํฐ ์์ํฉ์๋ค. ์ค๊ดํธ๋ฅผ ๋ง๋ค๊ณ born
์ ์
๋ ฅํ๋ฉด ๊ทธ๋๋ก born
์ด๋ผ๋ ๋ณ์๊ฐ ๋ง๋ค์ด์ง ๊ฒ๋๋ค. ์ ์ด๋ฆ์ ์ง๊ธฐ ์ํด ์ฝ๋ก ์ ๋ฃ๊ณ birthYear
๋ฅผ ์
๋ ฅํ๊ฒ ์ต๋๋ค. ์ด์ ๋ณ์์ ์ด๋ฆ์ born
์ด ์๋ birthYear
๊ฐ ๋ฉ๋๋ค.
const { born: birthYear } = user;
user์ born
ํน์ฑ๊ฐ์ด birthYear
๋ณ์์ ์ฐ์ด๋ ๊ฒ๋๋ค. ์ฝ์์์ born
์ ์
๋ ฅํ๋ฉด ์๋ฌด๊ฒ๋ ์์ง๋ง, birthYear
๋ฅผ ์
๋ ฅํ๋ฉด ๊ฐ์ด ๋์ค์ฃ .
died
์๋ ๊ฐ์ ๋ฐฉ๋ฒ์ ์จ์ deathYear
๋ผ๊ณ ์ด๋ฆ์ ์ง์๊ฒ์. ๊ณง birthYear
์ deathYear
๊ฐ์ ํ์ธํ ์ ์์ต๋๋ค.
๋ํดํธ ๊ฐ ์ถ๊ฐํ๊ธฐ
๋ง์ง๋ง์ผ๋ก ๋ํดํธ ๊ฐ ์ถ๊ฐ๋ฅผ ๋ฐฐ์ ๋ณด๊ฒ ์ต๋๋ค. ๋ ๋ค๋ฅธ ์ฌ์ฉ์, user2
๊ฐ ์๋ค๊ณ ์นฉ์๋ค.
์ด ์ฌ์ฉ์์ ์ ๋ณด์๋ ํน์ฑ์ด ๋ง์ง ์์ต๋๋ค. ํนํ died
ํน์ฑ์ด ์๋๋ฐ์, ์์ง ์ด์ ์๋ ์ฌ๋์ด๊ธฐ ๋๋ฌธ์
๋๋ค. ์ ๋ช
ํ ์ฌ๋์ด ์๋๊ธฐ ๋๋ฌธ์ bio
๋ ์์ต๋๋ค.
const user2 = {
email: 'Stacy@gmail.com',
firstName: 'Stacy',
lastName: 'Gonzalez',
born: 1987,
city: 'Tulsa',
state: 'Oklahoma'
}
์, ์ด๋ฒ์๋ user2
๋ผ ๊ฐ์ฒด๋ฅผ ๊ตฌ์กฐ ๋ถํดํด ๋ณด๋๋ก ํฉ์๋ค. ์ค๊ดํธ ์์ ์ ์ ํ ํน์ฑ์ ์
๋ ฅํ๊ฒ ์ต๋๋ค. ๋ฌด์จ ํน์ฑ์ ๋ณผ๊น์? city
์ state
๋ฅผ ์
๋ ฅํ ๊ฒ์. ๊ทธ๋ฆฌ๊ณ died
๋ ์ถ๊ฐํ๊ฒ ์ต๋๋ค. ์ค์ ๋ก ๊ฐ์ฒด์๋ ์๋ ์ ๋ณด์ง๋ง, ์ด๋ค ๊ฐ์ด ๋์ค๋์ง ํ์ธํ๊ธฐ ์ํด ๋ฃ์ด ๋ณด๊ฒ ์ต๋๋ค.
const { city, state, died } = user2;
์ฝ์์์ died
๋ฅผ ์
๋ ฅํด ๋ณผ๊น์?
undefined
๊ฐ ๋์์ต๋๋ค. undefined
๊ฐ ์ค๋ฅ๋ ์๋๋๋ค. ๊ทธ์ ๊ฐ์ฒด์์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ชป ์ฐพ์๊ธฐ ๋๋ฌธ์
๋๋ค.
์ด๋ด ๋๋ ๋ํดํธ ๊ฐ์ ์ฃผ์ด ํด๊ฒฐํ ์ ์์ต๋๋ค. ๋ํดํธ ๊ฐ์ = ์ ์
๋ ฅํด ์ค์ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ died
๊ฐ์ด ์์ผ๋ฉด N/A๊ฐ ๋จ๋๋ก ์ค์ ํ์ต๋๋ค.
๋ฐ๋ฉด ์ฒซ ๋ฒ์งธ ์ฌ์ฉ์(user)์ธ Harvey Milk์ ๊ฒฝ์ฐ, ๋ํดํธ ๊ฐ์ N/A๋ก ์ฃผ๋๋ผ๋ ๊ฒฐ๊ณผ์ N/A๊ฐ ๋จ์ง๋ ์์ต๋๋ค. ๊ฐ์ฒด์ ํน์ฑ๊ฐ์ธ 1978์ด ๋จ์ฃ . died
๊ฐ์ด ์์ผ๋๊น์.
๋งค๊ฐ ๋ณ์ ๋ถํด
๋ง์ง๋ง์ ๋๋ค. ์ด๋ฒ ๊ตฌ์กฐ ๋ถํด๋ ํจ์์ ๋งค๊ฐ ๋ณ์์ ์ ์ฉ๋ฉ๋๋ค.
ํจ์๋ฅผ ์ ์ํ ๋ ๊ดํธ ์์ ๋งค๊ฐ ๋ณ์๋ฅผ ์์ฑํ๋ฉด ์ ๋ฌํ๋ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๋ถํดํ ์ ์์ต๋๋ค. ์ด๋ ๊ฐ์ฒด์ ์ฃผ๋ก ์ฐ์ด๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์์๋ฅผ ๋ณด๋ฉด์ ๋ ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค. ์ฐ์ ๊ฐ๋จํ ๊ฒ๋ถํฐ ํ์ฃ . ์์ ๋ณธ ์ฌ์ฉ์(user
) ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ๋ ํจ์๋ฅผ ๋ง๋ค๊ฒ ์ต๋๋ค. ํจ์์ ์ด๋ฆ์ firstName
์ด๋ผ๊ณ ์ง์์ต๋๋ค. ์ฌ์ฉ์ ๊ฐ์ฒด์ ์ ๋ณด๋ฅผ ๋ฐ์ ๊ฐ์ ์ถ๋ ฅํ ๊ฒ๋๋ค. ๋ฐํ๋ฌธ์ผ๋ก firstName
๊ณผ lastName
์ ์ถ๋ ฅํด ๋ณด๊ฒ ์ต๋๋ค. ์๋์ ๊ฐ์ ํํ์ฃ .
function fullName (user) {
return `${user.firstName} ${user.lastName}`
}
์ฌ์ฉ์(user
)์ fullName
์ ์ถ๋ ฅํ๋ฉด ๊ฐ์ด ๋์ฌ ๊ฒ๋๋ค.
์ด์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ตฌ์กฐ ๋ถํด๋ฅผ ์ด์ฉํด ๋ง๋ค ์ ์์ต๋๋ค.
์์ ์ฝ๋์ ๋ช ๊ฐ์ง๋ฅผ ์ถ๊ฐํ๊ฒ ์ต๋๋ค. ์ค๊ฐ์ const
๋ฌธ์ ๋ฃ๊ณ return
๋ถ๋ถ์์ user
๋ฅผ ์ง์ฐ๊ฒ ์ต๋๋ค. ํฐ ์ฐจ์ด๋ ์์ฃ ?
function fullName (user) {
const { firstName, lastName } = user;
return `${firstName} ${lastName}`
}
์ฒ์ ์์ฑํ ์ฝ๋๊ฐ ๋ ์งง์ง๋ง ๋งค๊ฐ ๋ณ์๋ฅผ ์์ฃผ ์ธ ๋๋ ์ด ๋ฐฉ์์ด ๋ ๋ซ์ต๋๋ค.
์ข ๋ ์ค์ฌ์ ์ฝ๋๋ฅผ ์์ฑํ ์๋ ์์ต๋๋ค. born
, died
, bio
๋ฑ ๋ค๋ฅธ ํน์ฑ ์ ๋ณด๋ ์ถ๋ ฅํ์ง ์๊ณ ์ด๋ฆ ์ ๋ณด๋ง ํ์ํ๋ค๋ฉด ๋ง์ด์ฃ . ์์ ๋งค๊ฐ ๋ณ์์์ ๊ตฌ์กฐ ๋ถํด๋ฅผ ํ ์ ์์ต๋๋ค. ๋ค์ fullName
์ด๋ผ๋ ํจ์๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ๋ค์ ๊ฐ์ ๊ฐ์ ธ์ค๋ ๋งค๊ฐ ๋ณ์ ์๋ฆฌ์์ ๊ณง๋ฐ๋ก ๊ตฌ์กฐ ๋ถํด๋ฅผ ํ๋ ๊ฑฐ์ฃ . return
์ ์์ ํจ์์์ ๊ทธ๋๋ก ๊ฐ์ ธ์ค๊ฒ ์ต๋๋ค.
function fullName({ firstName, lastName }) {
return `${firstName} ${lastName}`
}
์ฝ๋๊ฐ ํจ์ฌ ์งง์์ง ๋ฐ๋ค user
๋ผ๋ ์ด๋ฆ์ ์์ ์์ฑํ์ง ์์๋ ๋ฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ผ๋ก๋ ๋๊ฐ์ ๊ฐ, Harvey Milk๊ฐ ๋์ต๋๋ค.
๋ฐฐ์ด ๋ฉ์๋์ ํ์ฉํ๊ธฐ
์ด๋ฌํ ๊ตฌ์กฐ ๋ถํด๋ ๋ฐฐ์ด ๋ฉ์๋์์๋ ์์ฃผ ์ฐ์ ๋๋ค. ์์๋ก ์ํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์์ต๋๋ค.
ํ์ ์ผ๋ก ์ํ๋ฅผ ๋ถ๋ฅํ๋ค๊ณ ์นฉ์๋ค. ์ด ์์
์๋ filter
๋ฉ์๋๋ฅผ ์ด์ฉํ๊ฒ ์ต๋๋ค. score
ํน์ฑ์ด 90์ ์ด์์ธ ์ํ๋ฅผ ๋ถ๋ฅํฉ์๋ค. ๋์ ํ์ ์ ์ํ๋ค์ ๋ฌด์์ผ๊น์?
Amadeus, Parasite, Alien์ด ๋์ค๋ค์.
์ด๋ ๋งค๊ฐ ๋ณ์ ์๋ฆฌ์ ๊ตฌ์กฐ ๋ถํด๋ฅผ ์ด์ฉํด๋ ๋ฉ๋๋ค. movie๋ผ๋ ๊ฐ์ฒด ์ด๋ฆ์ ๋นผ๋ ๋๋ค๋ ๋ป์ด์ฃ . ๊ทธ์ ์ค๊ดํธ ์์ score
๋ฅผ ๋ฃ์ผ๋ฉด ๋ฉ๋๋ค. ์์ ์์ฑํ ์ฝ๋๋ณด๋ค ํจ์ฌ ์งง์ฃ .
movies.filter(({ score }) => score >= 90)
๋ค๋ง ์ฌ์ ํ ๊ฐ์ ํ ์ค์ด์ด์ ์ฐจ์ด๊ฐ ํฌ๊ฒ ๋๊ปด์ง์ง ์์ ์ ์์ต๋๋ค. ๋ ๊ธด ์ฝ๋๊ฐ ํ์ํ ๋๋ฅผ ๋ณด๊ฒ ์ต๋๋ค. title, score
, year ํน์ฑ์ ํ ๋ฒ์ ๊ตฌ์กฐ ๋ถํดํด ๋ด
์๋ค.
์ฌ๊ธฐ์๋ map
์ ์ด์ฉํ ๊ฒ์. movies.map
์ ์
๋ ฅํ๊ณ return
๊ฐ์ผ๋ก๋ ์ํ ์ ๋ชฉ๊ณผ ๊ฐ๋ด ์ฐ๋, ํ์ ์ด ๋์ค๋๋ก ๋ฌธ์์ด ํ
ํ๋ฆฟ ๊ตฌ๋ฌธ์ ์์ฑํ์ต๋๋ค.
movies.map(movie => {
return `${movie.title} (${movie.year}) is rated ${movie.score}`
})
๊ฒฐ๊ณผ๋ ์ด๋จ๊น์?
1984๋ ์ ๊ฐ๋ดํ Amadeus๋ 99์ , 2013๋ ์ ๊ฐ๋ดํ Sharknado๋ 35์ ์ ๋๋ค. ์ํ๋ ๋๋ก ์ ๋์๋ค์.
๊ตฌ์กฐ ๋ถํด๋ฅผ ์ด์ฉํด ์ด ์ฝ๋๋ฅผ ๋ ์งง๊ฒ ๋ง๋ค์ด ๋ด
์๋ค. ๋ค์ ํ๋ฒ ๊ตฌ์กฐ ๋ถํด๋ฅผ ์ํด ์ค๊ดํธ๋ฅผ ์
๋ ฅํ๊ณ title, score
, year ํน์ฑ์ ์ด๋ฆ์ ๋ฃ๊ฒ ์ต๋๋ค. ๊ฐ์ฒด ์ด๋ฆ์ธ movies๋ ์ง์๋๋ค.
movies.map(({ title, score, year }) => {
return `${title} (${year}) is rated ${score}`
})
์ด ์ฝ๋๋ก ์์์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ ๊ฒ๋๋ค. ์ฝ๋์ ๊ธธ์ด๊ฐ ์งง์์ง๊ณ ๊ตฌ์ฑ์ด ๊ฐ์ํด์ก์ผ๋ ๋ ๋์ ์์ฑ๋ฒ์ ๋๋ค.
๋ง์น๋ฉฐ
์ง๊ธ๊น์ง ๊ตฌ์กฐ ๋ถํด๋ฅผ ์ดํด๋ดค์ต๋๋ค.
๊ตฌ์กฐ ๋ถํด๋ ๋ง ๊ทธ๋๋ก ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด๋ฅผ ๋ถํดํ๋ ๋ฐ ๋์์ ์ค๋๋ค. ๋ฐฐ์ด์ ์์๋ ๊ฐ์ฒด์ ํน์ฑ๊ฐ์ ๋์ด๋ด ํ์ฉํ ์ ์์ฃ . ํจ์์ ๋งค๊ฐ ๋ณ์์๋ ๋๊ฐ์ด ์ ์ฉํ ์ ์์ต๋๋ค.
์ด๋ก์จ ํจ์ฌ ํจ์จ์ ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ๊ทธ์ ๊ดํธ๋ฅผ ํ์ฉํ๋ ๊ฒ๋ง์ผ๋ก์.