TIL/JavaScript

TIL 3 : ๋ฌธ์ž์—ด (JavaScript)

Deviloper๐Ÿ˜ˆ 2021. 7. 21. 23:00

๋ฌธ์ž์—ด (String)

ํ•ญ์ƒ read-only ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผ์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋ฌธ์ž์—ด ์ž์ฒด ๋‚ด์šฉ์„ ๋ฐ”๊ฟ€ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด ํ˜น์€ ๋ฌธ์ž์—ด๊ณผ ๋‹ค๋ฅธ ํƒ€์ž…์„ +๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฌธ์ž์—ด์ด ์•„๋‹Œ ๊ฒƒ๊ณผ ํ•ฉํ•ด๋„ ๋ชจ๋“  ๋ถ€๋ถ„์ด ๋ฌธ์ž์—ด๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ, +๋Œ€์‹  concat์„ ์ด์šฉํ•ด๋„ ๋œ๋‹ค๊ณ  ํ•˜๋„ค์š”!

 

์ดํ›„ ๋ฌธ์ž์—ด๊ณผ ๊ด€๋ จํ•œ ์†์„ฑ(Property)๊ณผ ๋ฉ”์„œ๋“œ(Method)๋ฅผ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.

์†์„ฑ์œผ๋กœ๋Š” length๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์†Œ๋“œ๋Š” ์ข€ ๋งŽ์•„์„œ ๊ฐ ๋ฉ”์„œ๋“œ๋งˆ๋‹ค ๋”ฐ๋กœ ์ •๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

indexOf

str.indexOf(searchValue)

arguments: ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ž์—ด

์ฒ˜์Œ์œผ๋กœ ์ผ์น˜ํ•˜๋Š” ์ธ๋ฑ์Šค์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด ์ค๋‹ˆ๋‹ค. ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ž์—ด์ด ์—†๋‹ค๋ฉด -1์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

lastIndexOf๋Š” ๋ฌธ์ž์—ด ๋’ค์—์„œ๋ถ€ํ„ฐ ์ฐพ์•„์ค๋‹ˆ๋‹ค.

 

includes

str. includes(searchValue): Boolean์œผ๋กœ ์ถœ๋ ฅ๋จ

 

split

str.split(separator)

arguments: ๋ถ„๋ฆฌ ๊ธฐ์ค€์ด ๋  ๋ฌธ์ž์—ด

๋ถ„๋ฆฌ๋œ ๋ฌธ์ž์—ด์ด ํฌํ•จ๋œ ๋ฐฐ์—ด array๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

csv๋ฅผ ์ด์šฉํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

substring

str.substring(start, end): start์™€ end ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ์ƒ๊ด€์—†์Šต๋‹ˆ๋‹ค.

์Œ์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด 0์œผ๋กœ ๋ด…๋‹ˆ๋‹ค.

str='javascript'

str.substring(0,3)์˜ ๊ฒฐ๊ณผ๊ฐ’: 'jav'

 

slice()

substring๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ ๋‘ ๊ฐ€์ง€ ์ธก๋ฉด์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฑด ํŽ˜์–ด๋ถ„ ๋•๋ถ„์— ์•Œ๊ฒŒ ๋์–ด์š”!

1. start > end์ธ ๊ฒฝ์šฐ.

    substring์€ ์ž๋™์œผ๋กœ start์™€ end์˜ ๊ฐ’์„ ๋ฐ”๊พธ์–ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ˜๋ฉด, slice๋Š” ""์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

2. start๋‚˜ end์˜ ๊ฐ’์ด ์Œ์ˆ˜์ผ ๋•Œ
    substring์€ ์Œ์ˆ˜ ๊ฐ’์„ 0์œผ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๋ฐ˜๋ฉด, slice๋Š” ์•ž์—์„œ๋ถ€ํ„ฐ๊ฐ€ ์•„๋‹Œ ๋’ค์—์„œ๋ถ€ํ„ฐ ์Œ์ˆ˜์˜ ์ ˆ๋Œ€๊ฐ’๋งŒํผ ๋–จ์–ด์ง„ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

์œ„ ๋‘ ๊ฐ€์ง€ ์ฐจ์ด์ ์„ ๋ณด์•˜์„ ๋•Œ, ๊ฐœ์ธ์ ์œผ๋กœ slice๊ฐ€ ๋” ๋ฐฉํ–ฅ์„ฑ์„ ์ค‘์‹œํ•˜๋Š” ๋ฉ”์†Œ๋“œ ๊ฐ™๋„ค์š” (:

 

str.toLowerCase() / str.toUpperCase()

๋ชจ๋“  ๋ฌธ์ž์—ด์„ ์†Œ๋ฌธ์ž/๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•ด์ค๋‹ˆ๋‹ค.

 

immutable์€ ์›๋ณธ์ด ๋ณ€ํ•˜๊ฒŒ ํ•˜์ง€ ์•Š๋Š” ๋ฉ”์†Œ๋“œ ์ž…๋‹ˆ๋‹ค. mutable์€ ์›๋ณธ์ด ๋ณ€ํ•˜๊ฒŒ ๋˜๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  String์€  immutable ํ•˜๊ธฐ์— ์–ด๋–ค ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์›๋ณธ์ด ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด Array์™€ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ๋ฉ”์„œ๋“œ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— immutable๊ณผ mutable ์—ฌ๋ถ€๋ฅผ ์ž˜ ๊ธฐ์–ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

str.trim()

๋ฌธ์ž์—ด์˜ ์•ž๋’ค์— ์žˆ๋Š” ๊ณต๋ฐฑ์„ ์—†์• ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

 

๊ณต๋ฐฑ ๋ฌธ์ž: ํƒญ(\t), Carriage return(\r\n), return ๋ฌธ์ž(\n)

 

str.match()

argument: ์ฐพ๊ณ  ์‹ถ์€ ๋ฌธ์ž์—ด

๋ฌธ์ž์—ด์ด ์ •๊ทœ์‹๊ณผ ๋งค์น˜๋˜๋Š” ๋ถ€๋ถ„์„ ๊ฒ€์ƒ‰ํ•ด์ค๋‹ˆ๋‹ค.

 

srt.replace("๋บ„ ๋ฌธ์ž์—ด", "์ƒˆ๋กœ ๋„ฃ์„ ๋ฌธ์ž์—ด")

replace() ํ•จ์ˆ˜๋Š” ์ œ์ผ ๋จผ์ € ์ผ์น˜ํ•˜๋Š” ํŒจํ„ด๋งŒ ๋ณ€ํ™˜ ํ›„ ๋ฐ”๊ฟ€ ๋ฟ ๋ชจ๋“  ํ…์ŠคํŠธ๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

์ •๊ทœํ‘œํ˜„์‹

๋ฌธ์ž์—ด์— ๋‚˜ํƒ€๋‚˜๋Š” ํŠน์ • ๋ฌธ์ž ์กฐํ•ฉ๊ณผ ๋Œ€์‘์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค.

 

 

 

์ฝ”ํ”Œ๋ฆฟ

  • if (์กฐ๊ฑด) {return True}
    ์ด๋‹ค์Œ ์ค„์— else ์—†์ด ๋ฐ”๋กœ return False ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
  • ํŒŒ์ด์ฌ๊ณผ ๋‹ฌ๋ฆฌ ํƒ€์ž… ๋ฐ”๊ฟ”์ค„ ๋•Œ, str()/num()์ด ์•„๋‹ˆ๋ผ String() / Number()๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณต๋ฐฑ ์œ ๋ฌด์™€ ๊ฐ™์ด ์ž‘์€ ์˜คํƒ€ ํ•˜๋‚˜๋กœ ์˜ค๋ฅ˜๊ฐ€ ์ž์ฃผ ๋‚ฌ์Šต๋‹ˆ๋‹ค. ํƒ€์ดํ•‘ํ•  ๋•Œ ์œ ์˜ํ•ด์„œ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ์กฐ๊ฑด๋ฌธ์ด ์–ด๋ ค์šด ํŽธ์ด์—ˆ๋Š”๋ฐ, ์ฐจ๊ทผ์ฐจ๊ทผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์„ธ์šฐ๋ฉด ์‹œ๊ฐ„์€ ์ข€ ๊ฑธ๋ฆด์ง€๋ผ๋„ ์ •๋‹ต๋ฅ ์€ ๋†’์•„์ง€๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • Math.min() / Math.floor() / Math.round() / Math.ceil() ๋“ฑ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ‘œํ˜„์‹์„ ํ™œ์šฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ์ข€ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 'ํ˜„์žฌ ์‹œ๊ฐ์€ ${hour} ์‹œ ${minute}๋ถ„ ${sec} ์ดˆ์ž…๋‹ˆ๋‹ค.'๋กœ ํ‘œํ˜„ํ•˜๋‹ˆ     '   ' + '   '   ๊ฐ™์ด ๋ฒˆ๊ฑฐ๋กญ๊ฒŒ ์“ธ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

 

 

 

Check Point

์„ธ์…˜ ์ดํ›„ ์–ด์ œ์˜ค๋Š˜ ๋ฐฐ์› ๋˜ ๋‚ด์šฉ์ด๋‚˜ ํ—ท๊ฐˆ๋ ธ๋˜ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๋‹ค์‹œ ํ•œ๋ฒˆ ์ œ๋Œ€๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 

๊ฐ„๋‹จํ•œ ์ฝ”๋“œ์—ฌ๋„ ๋Œ€์ถฉ ์„ค๋ช…ํ•˜๊ธฐ๋ณด๋‹ค๋Š” '์ •ํ™•ํ•œ ์šฉ์–ด'๋ฅผ ์‚ฌ์šฉํ•ด ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

๋‚˜์ค‘์— ๋‹ค์‹œ ํ•œ๋ฒˆ ๋ณด๊ณ  ์‹ถ์–ด์„œ ์งค๋ง‰ํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

  • let์„ ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ,๋ฅผ ์ด์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    let thing = 'A', num=1;
  • ()๋Š” ํ•จ์ˆ˜์˜ ์„ ์–ธ์ด๋‚˜ ํ˜ธ์ถœํ•  ๋•Œ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • parseFloat('1.43'): ๋ง ๊ทธ๋Œ€๋กœ '์‹ค์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค'๋Š” ๋œป์ž…๋‹ˆ๋‹ค.
  • Number('anything')์˜ ๊ฒฐ๊ณผ๊ฐ’์€ NaN์ž…๋‹ˆ๋‹ค.
  • return function ํ•˜๋ฉด ํ•จ์ˆ˜ ์ž์ฒด๋ฅผ ๋ฆฌํ„ดํ•ด์ค๋‹ˆ๋‹ค.
    return function()ํ•˜๋ฉด ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฆฌํ„ดํ•ด์ค๋‹ˆ๋‹ค.
  • MECE (Mutually Exclusive Collectively Exhaustive์˜ ์•ฝ์ž, ์ƒํ˜ธ ๋ฐฐ์ œ์™€ ์ „์ฒด ํฌ๊ด„)

 

 

์˜ค๋Š˜๋„ ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ํ•˜๋ฃจ์˜€์Šต๋‹ˆ๋‹ค. ์กฐ๊ฑด๋ฌธ ์ฝ”ํ”Œ๋ฆฟ ๋’ท๋ถ€๋ถ„์—์„œ ๋‚ฏ์„  ๋ฌธ์ œ๋“ค์ด ์žˆ์–ด ์‚ด์ง ๋ฉ˜๋ถ•์ด ์™”์ง€๋งŒ ๋•๋ถ„์— ๋” ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋„ค์š”! ๊ทธ๋ฆฌ๊ณ  ํ˜„์—…์—์„œ์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์ค‘์š”์„ฑ๋„ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋А๊ผˆ์Šต๋‹ˆ๋‹ค. ๋จธ๋ฆฌ๋กœ๋Š” ์•Œ๊ฒ ๋Š”๋ฐ ํŽ˜์–ด๋ถ„๊ป˜ ์˜๊ฒฌ์„ ์ œ์‹œํ•˜๋ ค ํ•  ๋•Œ, ์ฆ‰ ๋ง๋กœ ํ‘œํ˜„ ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์–ด๋ ค์›€์„ ๋А๊ผˆ๋Š”๋ฐ์š”. ๋งŽ์ด ๋งํ•˜๊ณ  ์‚ฌ์šฉํ•ด๋ด์•ผ ์ต์ˆ™ํ•ด์งˆ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ธ”๋กœ๊น…๋„ ๋๋ƒˆ์œผ๋‹ˆ ๋งˆ์ € ์˜ค๋Š˜ ํ–ˆ๋˜ ์ฝ”ํ”Œ๋ฆฟ ๋ณด๋ฉด์„œ ํด๋ฆฐ ์ฝ”๋“œ ๋งŒ๋“ค๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋” ์•Œ์•„๋ด์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค.