๐ฅ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด ๋ฌธ์ ํ์ด
ํ์ต ๋ชฉํ
dollar sign($)๊ณผ back tick(``)์ผ๋ก ๋ฌธ์์ด ๋ด์ ๋ณ์๋ฅผ ๋ฃ์ ์ ์๋ค. ๋ค์ํ ๋ฉ์๋๋ฅผ ์ด์ฉํด์ ์ธ๋ถ์์ ๋ฐ์์จ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๊ณ ๊ทธ๊ฒ์ ๊ฐ์ฒด ์์ ์ ์ฅํ ์ ์๋ค.
template literal์ JavaScript ES6์์ ์ถ๊ฐ๋ ์๋ก์ด ๋ฌธ๋ฒ ์ค ํ๋์ด๋ฉฐ ๋ด์ฅ๋ ํํ์์ ํ์ฉํ๋ ๋ฌธ์์ด ๋ฆฌํฐ๋ด(์์ค ์ฝ๋์ ๊ณ ์ ๋ ๊ฐ)์ด๋ค.
์ด์ ๋ฒ์ ์์๋ String์ ์ฌ์ฉํ ๋ ๋ฌธ์๋ฅผ ๋ฐ์ดํ(', ")
๋ก ๊ฐ์์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ ES6๋ฒ์ ์์๋ถํฐ๋ back tick(``)
์ ์ฌ์ฉํ ์ ์๊ฒ๋์๋ค.
๋ ๋ฐฑํฑ์ผ๋ก ๊ฐ์ธ์ง ๋ฌธ์ ์์์ dollar sign($)
๊ณผ ์ค๊ดํธ
๋ก ๋ณ์๋ฅผ ๋ฃ์ ์๋ ์๋ค.
const name = '๊น๊ฐ๋ฐ';
const hi = `์๋
ํ์ธ์. ์ ๋ ${name}์
๋๋ค.`;
์ ์ฝ๋๋ฅผ console.log๋ก ์ฐ์ด๋ณด๋ฉด ์๋
ํ์ธ์. ์ ๋ ๊น๊ฐ๋ฐ์
๋๋ค.
๋ผ๋ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋๋ค! ๊ทธ๋ฆฌ๊ณ ๋ฐฑํฑ ์์์๋ ๊ธฐ์กด ๋ฌธ๋ฒ์์ ๋ถ๊ฐ๋ฅํ๋ ์ํฐ ์
๋ ฅ์ ํตํ ๊ฐํ(break line)์ฒ๋ฆฌ ๋ํ ๊ฐ๋ฅํ๋ค.
const hi = `์๋
ํ์ธ์.
์ ๋
${name}
์
๋๋ค.`;
์ด๋ฐ ์ฝ๋ ์์ฑ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ!๐คฉ
string method
ES6์์ ์ถ๊ฐ๋ string method ๋ช ๊ฐ์ง๋ฅผ ์์๋ณด์!
const email = 'lownk@gmail.com';
console.log(email.startsWith('lo'));
console.log(email.endsWith('com'));
console.log(email.includes('@gmail'));
startsWith
๋ฉ์๋๋ ๊ฒ์ฌํ๋ ค๋ ๋ฌธ์์ด('lownk@gmail.com')์ด ์์ ์ ์ธ์ ๋ฌธ์('lo')๋ก ์์ํ๋์ง๋ฅผ true ๋๋ false๋ก ๊ฐ๋ ค๋ธ๋ค.
endsWith
๋ฉ์๋๋ ๊ฒ์ฌํ๋ ค๋ ๋ฌธ์์ด('lownk@gmail.com')์ด ์์ ์ ์ธ์ ๋ฌธ์('com')๋ก ๋๋๋์ง๋ฅผ true ๋๋ false๋ก ๊ฐ๋ ค๋ธ๋ค.
includes
๋ฉ์๋๋ ๊ฒ์ฌํ๋ ค๋ ๋ฌธ์์ด('lownk@gmail.com')์ด ์์ ์ ์ธ์ ๋ฌธ์('@gmail')๋ฅผ ํฌํจํ๊ณ ์๋์ง๋ฅผ true ๋๋ false๋ก ๊ฐ๋ ค๋ธ๋ค.
Assignment
handleEdit ํจ์๋ฅผ ๊ตฌํํด ์ฃผ์ธ์.
์ผํ๋ชฐ ํ์๊ฐ์ ์์ ํ ๋ฒ ์ฏค์ ์๋์ ๊ฐ์ ๋ฌธ๊ตฌ๋ฅผ ๋ณด์ จ์ ๊ฒ๋๋ค.
"ํ์ํฉ๋๋ค. ์์ฝ๋๋! ํ์๊ฐ์ ๊ธฐ๋ ์ผ๋ก ์ฟ ํฐ์ ์ ๋ฆฝํด ๋๋ ธ์ต๋๋ค."
์ด๋ฌํ ๋ฌธ๊ตฌ์์๋ ์ด๋ฆ ๋ถ๋ถ๋ง ๊ณ์ ๋ฐ๋๊ณ ๋๋จธ์ง ๋ถ๋ถ์ ๊ณ ์ ๋ฉ๋๋ค. ๊ทธ๋ผ, ์ด๋ฆ ๋ถ๋ถ์ ๋ณ์๋ก ๊ด๋ฆฌ ํ๊ฒ ์ฃ ?
๊ทธ๋ ๋ค๋ฉด handleEdit ๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง ํจ์๋ฅผ ๊ตฌํํด ๋ด ์๋ค. ์ด ํจ์๋ nickname, interests ๋ผ๋ ๋ string์ ์ธ์๋ก ๋ฐ์ต๋๋ค. nickname์ ์ ์ ์ ๋๋ค์์, interests ๋ ์ ์ ์ ๊ด์ฌ์ฌ๋ฅผ ์๋ฏธํฉ๋๋ค.
interests ์๋ ์ฌ๋ฌ ๊ด์ฌ์ฌ๋ฅผ ์ ์ ์ ์์ต๋๋ค. ๊ทธ ๋ ๊ทธ ๊ด์ฌ์ฌ์ ๊ตฌ๋ถ์ ์ฝค๋ง(,)๋ฅผ ์ด์ฉํฉ๋๋ค.
nickname ๊ณผ interests ๊ฐ ๋ฌธ์ ์์ด ์ ๋ค์ด์๋ค๋ฉด ์ ์ ์ ๋ณด๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด์ Object์ ์ด ์ ๋ณด๋ฅผ ๋ด์์ ๊ด๋ฆฌํ ๊ฒ๋๋ค.
์๋ฅผ ๋ค์ด ์ ๋ ฅ ๊ฐ์ด nickname = "๋๋น" , interests = "๋ฐฉํ์ถ,ํ ๋์ค,๋ฉ ๋๋ฆฌ๊ธฐ" ๋ผ๊ณ ํ์ ๋
์๋์ ๊ฐ์ Object๋ฅผ ๋ฆฌํดํ๋๋ก ๊ตฌํํด ์ฃผ์ธ์.
{
nickname: "๋๋น",
interests: ["๋ฐฉํ์ถ","ํ ๋์ค","๋ฉ ๋๋ฆฌ๊ธฐ"],
bio: "์ ๋๋ค์์ ๋๋น์ ๋๋ค. ์ทจ๋ฏธ๋ ๋ฐฉํ์ถ,ํ ๋์ค,๋ฉ ๋๋ฆฌ๊ธฐ์ ๋๋ค."
}
โ ๏ธ ์ฃผ์
interests ๋ ๋ฐฐ์ด์ ๋๋ค.
interests ๋ฅผ ์ ์ ๋ ์ฝค๋ง(,) ๋ค์ ์คํ์ด์ค๋ ์ง์์ฃผ์ธ์.
๋์ ๋ต์
const handleEdit = (nickname, interests) => {
//์ ์ํด์ค ๋ ์ธ์๋ฅผ ๋ฐ๋ handleEditํจ์๋ฅผ ๋ง๋ ๋ค
userInfo = {};
//๋น userInfo๊ฐ์ฒด๋ฅผ ํ๋ ๋ง๋ค๊ณ
userInfo.nickname = nickname;
//userInfo๊ฐ์ฒด์ nickname์ด๋ผ๋ key๋ฅผ ๋ง๋ค๊ณ
//value๋ก๋ ์ธ์๋ก ๋ค์ด์จ nickname์ ๋ฃ์ด์ฃผ๊ธฐ!
userInfo.interests = interests.split(',');
//์ ์ ๊ฐ ์ค interests๋ฐฐ์ด์ split๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ์ฝค๋ง(,)๋ก ๊ฐ๊ฐ ๊ตฌ๋ถํด!
//๊ทธ๋ฆฌ๊ณ ๊ฑ๋ค๋ฅผ userInfo๊ฐ์ฒด ์ interests๋ผ๋ key์ value๋ก ๋ฃ์ด!
userInfo.bio = `์ ๋๋ค์์ ${nickname}์
๋๋ค. ์ทจ๋ฏธ๋ ${interests}์
๋๋ค.`
//userInfo๊ฐ์ฒด์ bio๋ผ๋ key๋ฅผ ๋ง๋ค๊ณ
//value๋ก๋ ์ ์ํด์ค ์ค์ค์ด ๋ฌธ์์ด์ ๋ฃ์ด์ฃผ๊ธฐ~
return userInfo;
//userInfo๊ฐ์ฒด๋ฅผ returnํด์ฃผ์ผ
}
์ ๋ฆฌํด๋ณด๋ฉด userInfo๋ผ๋ ๊ฐ์ฒด
์์ nickname
, interests
, bio
๋ผ๋ ์ด ์ธ ๊ฐ์ key
๋ค์ด ๋ค์ด ๊ฐ ๊ฒ์ด๊ณ , ๊ฐ๊ฐ์ value
์๋ ๋ฐ์์จ ๋ฐ์ดํฐ
๋ ์ ์ํด์ค ๋ฌธ์์ด์ ๋ฃ์ด์ค๊ฒ์ด๋ค.