<JavaScript> template literals, string method

Lown Kimยท2021๋…„ 9์›” 30์ผ
0
post-thumbnail

๐Ÿฅ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ ๋ฌธ์ œ ํ’€์ด



ํ•™์Šต ๋ชฉํ‘œ
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์—๋Š” ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ๋‚˜ ์ œ์‹œํ•ด์ค€ ๋ฌธ์ž์—ด์„ ๋„ฃ์–ด์ค€๊ฒƒ์ด๋‹ค.




0๊ฐœ์˜ ๋Œ“๊ธ€