TIL_31_with Wecode 021 JavaScript about [es6] template literals, string method

JIEUNยท2021๋…„ 2์›” 23์ผ
0
post-thumbnail

๐Ÿคด template literals
ES6 ์—์„œ ์ถ”๊ฐ€๋œ ๋ฌธ๋ฒ•์—์„œ ํŽธํ•œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜๊ฐ€ template literal ์ž…๋‹ˆ๋‹ค.
์›๋ž˜ string์„ ์ž‘์„ฑํ•  ๋•Œ ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ์ง€๋งŒ,

const name = '๊น€๊ฐœ๋ฐœ';

์ด์ œ back tick์œผ๋กœ๋„ string์„ ๊ฐ์Œ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const name = `๊น€๊ฐœ๋ฐœ`;

๊ทธ๋ฆฌ๊ณ  back tick ์œผ๋กœ ๊ฐ์‹ธ๋ฉด ๊ทธ ์•ˆ์— ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์–ด์„œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const name = '๊น€๊ฐœ๋ฐœ';
const hi = `์•ˆ๋…•ํ•˜์„ธ์š”. ์ €๋Š” ${name} ์ž…๋‹ˆ๋‹ค.`;

๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ${} ์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ๊ฐ์‹ธ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ES5 ํ‘œํ˜„์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ–ˆ์—ˆ์ฃ ?

const hi = '์•ˆ๋…•ํ•˜์„ธ์š”. ์ €๋Š” ' + name + ' ์ž…๋‹ˆ๋‹ค.';

์ด๋ ‡๊ฒŒ ํ–ˆ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์—”ํ„ฐ ์ฒ˜๋ฆฌ(๊ฐœํ–‰, break line)๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋‚˜์š”?
์•„๋ž˜์˜ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•œ๊ฐ€์š”?
์•„๋ž˜๋Š” ๋ฌธ๋ฒ• ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

let detail = '์ž์„ธํžˆ 
๋ณด์•„์•ผ
์ด์˜๋‹ค';
console.log(detail); //์˜ค๋ฅ˜

๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ผ string์€ ๊ฐœํ–‰ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋ฌธ๋ฒ• ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.
๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ผ string์—์„œ ๊ฐœํ–‰์„ ํ•˜๋ ค๋ฉด ์›๋ž˜ ์•„๋ž˜์ฒ˜๋Ÿผ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

let detail = '์ž์„ธํžˆ\n'+'๋ณด์•„์•ผ\n'+'์ด์˜๋‹ค';
console.log(detail);

๊ทธ๋Ÿฐ๋ฐ template literal์—์„œ๋Š” string์„ ์ž…๋ ฅํ•œ๋Œ€๋กœ ๊ฐœํ–‰์ด ๋ฉ๋‹ˆ๋‹ค.

let detail = `์ž์„ธํžˆ 
๋ณด์•„์•ผ
์ด์˜๋‹ค
๋‚ด์ฝ”๋“œ..`;
console.log(detail);

๐Ÿคด string method
ES6์—์„œ ์ถ”๊ฐ€๋œ ๋ช‡ ๊ฐ€์ง€ ์œ ์šฉํ•œ string method๋ฅผ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
๊ทธ ๋™์•ˆ string์—์„œ ํŠน์ • string์„ ์ฐพ๊ธฐ ์œ„ํ•ด indexOf๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ ์ด์ œ ์•„๋ž˜์˜ 3๊ฐ€์ง€ method๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.
์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๊ธฐ๋Šฅ์„ ํŒŒ์•…ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • startsWith
  • endsWith
  • includes
const email = 'yealee.kim87@gmail.com';
console.log(email.startsWith('ye'));
//true
console.log(email.endsWith('com'));
//true
console.log(email.includes('@gmail'));
//true

๊ทธ๋ฆฌ๊ณ  ํŠน์ • ๋ฌธ์ž์—ด์„ ๋ฐ˜๋ณตํ•˜๊ณ  ์‹ถ์œผ๋ฉด repeat ํ•จ์ˆ˜๋ฅผ ์“ฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

'#'.repeat(3); //###

๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€
https://javascript.info/string

๐Ÿคด Assignment
์‡ผํ•‘๋ชฐ์—์„œ ํšŒ์›๊ฐ€์ž…์„ ํ•œ ๋ฒˆ ์ฏค์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ๊ตฌ๋ฅผ ๋ณด์…จ์„ ๊ฒ๋‹ˆ๋‹ค.

ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์œ„์ฝ”๋“œ๋‹˜!
ํšŒ์›๊ฐ€์ž… ๊ธฐ๋…์œผ๋กœ ์ฟ ํฐ์„ ์ ๋ฆฝํ•ด ๋“œ๋ ธ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ๊ตฌ์—์„œ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์ด๋ฆ„ ๋ถ€๋ถ„๋งŒ ๊ณ„์† ๋ฐ”๋€Œ๊ณ  ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์€ ๊ณ ์ •๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„ ๋ถ€๋ถ„์„ ๋ณ€์ˆ˜๋กœ ๊ด€๋ฆฌํ•˜๊ฒ ์ฃ ?
๊ทธ๋ ‡๋‹ค๋ฉด handleEdit ๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด ๋ด…์‹œ๋‹ค.
์ด ํ•จ์ˆ˜๋Š” nickname, interests ๋ผ๋Š” ๋‘ string์„ ์ธ์ž๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค. nickname์€ ์œ ์ €์˜ ๋‹‰๋„ค์ž„์„, interests๋Š” ์œ ์ €์˜ ๊ด€์‹ฌ์‚ฌ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
interests์—๋Š” ์—ฌ๋Ÿฌ ๊ด€์‹ฌ์‚ฌ๋ฅผ ์ ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋•Œ ๊ทธ ๊ด€์‹ฌ์‚ฌ์˜ ๊ตฌ๋ถ„์„ ์ฝค๋งˆ(,)๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.
nickname๊ณผ interests๊ฐ€ ๋ฌธ์ œ ์—†์ด ์ž˜ ๋“ค์–ด์™”๋‹ค๋ฉด ์œ ์ € ์ •๋ณด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ Object์— ์ด ์ •๋ณด๋ฅผ ๋‹ด์•„์„œ ๊ด€๋ฆฌํ•  ๊ฒ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ์ž…๋ ฅ ๊ฐ’์ด nickname = "๋šœ๋น„", interests = "๋ฐฉํƒˆ์ถœ,ํ…Œ๋‹ˆ์Šค,๋ฉ ๋•Œ๋ฆฌ๊ธฐ"๋ผ๊ณ  ํ–ˆ์„ ๋•Œ
์•„๋ž˜์™€ ๊ฐ™์ด Object๋ฅผ ๋ฆฌํ„ดํ•˜๋„๋ก ๊ตฌํ˜„ํ•ด ์ฃผ์„ธ์š”.
์ฃผ์˜
1) interests๋Š” ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
2) interests๋ฅผ ์ ์„ ๋•Œ ์ฝค๋งˆ(,) ๋’ค์— ์ŠคํŽ˜์ด์Šค๋Š” ์ง€์›Œ์ฃผ์„ธ์š”.

{
   nickname: "๋šœ๋น„",
   interests: ["๋ฐฉํƒˆ์ถœ","ํ…Œ๋‹ˆ์Šค","๋ฉ ๋•Œ๋ฆฌ๊ธฐ"],
   bio: "์ œ ๋‹‰๋„ค์ž„์€ ๋šœ๋น„์ž…๋‹ˆ๋‹ค. ์ทจ๋ฏธ๋Š” ๋ฐฉํƒˆ์ถœ,ํ…Œ๋‹ˆ์Šค,๋ฉ ๋•Œ๋ฆฌ๊ธฐ์ž…๋‹ˆ๋‹ค."
}

๋‚˜์˜ ๋‹ต๋ณ€:

const handleEdit = (nickname, interests) => {
  let forFun = interests.split(",")
  let aboutMe = {
    nickname : nickname,
    interests : forFun,
    bio : `์ œ ๋‹‰๋„ค์ž„์€ ${nickname}์ž…๋‹ˆ๋‹ค. ์ทจ๋ฏธ๋Š” ${interests}์ž…๋‹ˆ๋‹ค.` 
    }
     return aboutMe;
   }
   handleEdit("์ง€์€", "์˜ํ™”๋ณด๊ธฐ, ์ฑ…์ฝ๊ธฐ");
/*
{
  nickname: '์ง€์€',
  interests: [ '์˜ํ™”๋ณด๊ธฐ', '์ฑ…์ฝ๊ธฐ' ],
  bio: '์ œ ๋‹‰๋„ค์ž„์€ ์ง€์€์ž…๋‹ˆ๋‹ค. ์ทจ๋ฏธ๋Š” ์˜ํ™”๋ณด๊ธฐ,์ฑ…์ฝ๊ธฐ์ž…๋‹ˆ๋‹ค.'
}
*/

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