TIL - 21.06.16 ๐Ÿ‘จโ€๐Ÿ’ป JS

์„ฑํ›ˆยท2021๋…„ 6์›” 16์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
3/59
post-thumbnail

TIL - 21.06.16 ๐Ÿ‘จโ€๐Ÿ’ป

  1. ๋ฌธ์ž์—ด
  2. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

์˜ค๋Š˜์€ ์กฐ๊ฑด๋ฌธ ์ฝ”ํ”Œ๋ฆฟ๊ณผ ๋ฌธ์ž์—ด ์ด๋ก , ์ฝ”ํ”Œ๋ฆฟ์ด ์žˆ์–ด์„œ ์ƒˆ๋กญ๊ฒŒ ๋ฐฐ์šด ๋‚ด์šฉ๋ณด๋‹ค๋Š” ๋ฐฐ์šด ๋‚ด์šฉ์„ ์ตํžˆ๋Š” ๋‚ ์— ๊ฐ€๊นŒ์› ๋‹ค.

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

๋ฌธ์ž์—ด์€ ๋ง ๊ทธ๋Œ€๋กœ ๋ฌธ์ž์˜ ๋‚˜์—ด์ด๋‹ค.

  • ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.
let s = 'Sunghoon'
let f = ' wanna be a developer.';
  • string ์ด์™ธ์˜ ๊ฐ’๊ณผ string ์„ ์—ฐ์‚ฐ์ž๋กœ ๋ถ™ํžˆ๋ฉด string ํƒ€์ž…์ด ๋œ๋‹ค.
let a = 'Dream comes '
let b = true;
console.log(a + b) // 'Dream comes true'
  • .length property ์‚ฌ์šฉ๊ฐ€๋Šฅ
    ๋ฌธ์ž์—ด ๋’ค์— ๋ถ™์œผ๋ฉด ๊ธ€์ž ์ˆ˜(Number type) ์ถœ๋ ฅ

  • index๊ฐ€ 0๋ถ€ํ„ฐ ์‹œ์ž‘.

  • ๋ฌธ์ž์—ด ๋ฉ”์†Œ๋“œ๋Š” ์ „๋ถ€ immutable.
    ๋ณต์‚ฌํ•ด์„œ ์ถœ๋ ฅ์„ ๋ฉ”์†Œ๋“œ ์กฐ๊ฑด์— ๋งž์ถฐ ์ถœ๋ ฅํ•˜๋Š”๊ฑฐ์ง€ ๋ณ€์ˆ˜ ์ž์ฒด์—๋Š” ์˜ํ–ฅ์ด ์—†์Œ.
    ์ฐจํ›„์— ๋ฐฐ์šธ ๋ฐฐ์—ด(Array) ๋ฉ”์†Œ๋“œ๋Š” mutable ๋ฉ”์†Œ๋“œ๋„ ์žˆ์–ด์„œ ์œ ์˜๊ฐ€ ํ•„์š”ํ•จ.

indexOf()

๋ฌธ์ž์—ด ์† ๊ธ€์ž ์ฐพ๋Š” Method.
์ค‘๋ณต๋œ ๋ฌธ์ž์—ด์€ ๊ฐ€์žฅ ๊ธ€์ž ์œ„์น˜ ์ถœ๋ ฅ.
์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ธ€์ž๊ฐ€ ์—†์œผ๋ฉด -1 ์ถœ๋ ฅ.

  • str.lastindexOf('a')
    ๋’ค์—์„œ ๋ถ€ํ„ฐ ์ฐพ๊ณ  ์ฒ˜์Œ ์ฐพ์€ ๊ฐ’์„ ์•ž์—์„œ๋ถ€ํ„ฐ ์„ธ์„œ ์œ„์น˜ ์ถœ๋ ฅ.

  • str.includes('a')
    ํ•ด๋‹น ๊ฐ’ ์œ ๋ฌด ๋ถˆ๋ฆฌ์–ธํƒ€์ž…์œผ๋กœ ์ถœ๋ ฅ.


let sunghoon = 'Sunghoon wanna be a developer.';

//str.indexOf('a') ์˜ˆ์ œ
sunghoon.indexOf('wanna'); // 9
sunghoon.indexOf('Wanna'); // -1 #๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„
sunghoon.indexOf('e'); // 16 ์ตœ์ดˆ ์œ„์น˜ 

//str.lastIndexOf('a') ์˜ˆ์ œ
sunghoon.lastIndexOf('e'); // 27 ๋’ค์—์„œ ๋ถ€ํ„ฐ ์ฐพ์•˜์„ ๋•Œ ์ฒซ ๊ธ€์ž ์œ„์น˜

//str.includes('a') ์˜ˆ์ œ
sunghoon.includes('sunghoon') // false 
    

.split()

์ธ์ˆ˜ - ๋ถ„๋ฆฌํ•  ๊ธฐ์ค€์ด ๋  ๋ฌธ์ž์—ด.
์ธ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์–‘ ์˜†์˜ ๋ฌธ์ž์—ด์„ ์š”์†Œ๋กœ ๊ฐ€์ง„ ๋ฐฐ์—ด ์ถœ๋ ฅ.
csv ํŒŒ์ผ ๋ถ„๋ฅ˜์— ํŽธ๋ฆฌํ•˜๋ฉฐ ์ค„๋ฐ”๊ฟˆ์€ '\n'์œผ๋กœ ๊ธฐ์ค€ ์„ค์ • ๊ฐ€๋Šฅ

.substring()๊ณผ .slice()

๋ฌธ์ž์—ด์ค‘ ์ผ๋ถ€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฉ”์†Œ๋“œ.
๋‘ ๋ฉ”์†Œ๋“œ ๋‹ค ์ธ์ˆ˜๋ฅผ ๋‘๊ฐœ ๊ฐ€์ง€๋ฉฐ ๊ฐ๊ฐ (start, end) ์ธ๋ฑ์Šค ๊ฐ’์„ ์ธ์ˆ˜๋กœ ๊ฐ€์ง„๋‹ค.
start ์œ„์น˜๋ถ€ํ„ฐ ๊ธ€์ž๋ฅผ ์„ธ์—ˆ์„๋•Œ end๋ฒˆ์งธ ๋ฌธ์ž๊นŒ์ง€ ์ถœ๋ ฅํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•˜๋‹ค.

let sunghoon = 'Sunghoon wanna be a developer.';
sunghoon.slice(0, 8); // 'Sunghoon'
sunghoon.substring(20, 28); // 'developer'

๋‹จ ๊ธ€์ž๊ฐ€ ๋‹ค๋ฅธ ๋งŒํผ ์ฐจ์ด๋„ ์žˆ๋Š”๋ฐ ์ฃผ์š”ํ•œ ์ฐจ์ด์ ์œผ๋กœ,

  1. start > end ์ผ๋•Œ ์ถœ๋ ฅ
    .substring์€ ์ธ์ˆ˜์˜ ์œ„์น˜๊ฐ€ ์–ด๋–ป๊ฒŒ ๋˜๋˜ ์ž‘์€ ๊ฐ’์ด start, ํฐ ๊ฐ’์ด end๊ฐ€ ๋œ๋‹ค.
    .slice()๋Š” start๊ฐ’์ด end๊ฐ’ ๋ณด๋‹ค ํด๋•Œ ๋นˆ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.

  2. ๊ฐ’์ด ์Œ์ˆ˜ ์ผ๋•Œ
    .substring()์€ ์Œ์ˆ˜๋ฅผ 0์œผ๋กœ ์น˜ํ™˜ํ•˜์—ฌ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
    .slice()์€ ์Œ์ˆ˜๋Š” ๋ฌธ์ž์—ด ๋’ค์—์„œ ๋ถ€ํ„ฐ ์„ผ๋‹ค.

let sunghoon = 'Sunghoon wanna be a developer.';
// 1. start > end ์ผ๋•Œ ์ถœ๋ ฅ
sunghoon.substring(8, 0) // 'Sunghoon'
sunghoon.slice(8, 0) // ''
// 2. ๊ฐ’์ด ์Œ์ˆ˜ ์ผ๋•Œ
sunghoon.substring(-10, 29) // ''Sunghoon wanna be a developer'
sunghoon.slice(-10, 29) // 'developer' ์Œ์ˆ˜๋กœ ์…€๋• 1๋ถ€ํ„ฐ ์„ผ๋‹ค.

Number()์™€ parseInt()

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌธ์ž์—ด์—์„œ ์ˆซ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๊ฐ™์ง€๋งŒ, Number()๋Š” 10์ง„๋ฒ•๋งŒ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ์— ๋น„ํ•ด parseInt()๋Š” 2์ง„๋ฒ•, 8์ง„๋ฒ•, 32์ง„๋ฒ• ๋“ฑ์„ ์ทจ๊ธ‰ํ•œ๋‹ค.
์ธ์ž๊ฐ€ ์—†์œผ๋ฉด 10์ง„๋ฒ•์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๋‘๋ฒˆ์งธ ์ธ์ž๋ฅผ ์ž…๋ ฅํ•œ๋‹ค๋ฉด ํ•ด๋‹น ์ง„์ˆ˜๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Number(101) // 101 
parseInt(101) // 101
parseInt(101, 2) // 5

GOOD ๐Ÿ˜‰

์ฝ”ํ”Œ๋ฆฟ์ด ์ž˜ ํ’€๋ ค์„œ ๊ธฐ๋ถ„์ด๊ฐ€ ์ข‹์•˜๋‹ค.
์ˆ˜๋„์ฝ”๋“œ์— ๋ญ”๊ฐ€ ์ต์ˆ™ํ•ด์ง€๊ณ  ์žˆ๋Š” ๋Š๋‚Œ ์•„๋งˆ ๊ธฐ๋ถ„ ํƒ“
๋น„์˜จ ๋’ค ๋‚ ์”จ๊ฐ€ ์„ ์„ ํ•ด์„œ ์ข‹์•˜๋‹ค.

BAD ๐Ÿ˜ฅ

์˜ค๋Š˜ ํ‰์†Œ๋ณด๋‹ค ๋‘์‹œ๊ฐ„์ด๋‚˜ ๋Šฆ๊ฒŒ ์ผ์–ด๋‚˜์„œ ์•„์นจ ์šด๋™, ์•„์นจ ๊ณต๋ถ€๋ฅผ ๋ชปํ•˜๊ณ  ์ฝ”ํ”Œ๋ฆฟ์— ๋“ค์–ด๊ฐ”๋‹ค. ์•„์นจ์— ๋น„์™€์„œ ๊ทธ๋ž˜

TO DO ๐Ÿ”ฅ

๋ฐ˜๋ณต๋ฌธ๋ฐ˜๋ณต๋ฌธ๋ฐ˜๋ณต๋ฌธ๋ฐ˜๋ณต๋ฌธ๋ฐ˜๋ณต๋ฌธ๋ฐ˜๋ณต๋ฌธ
๋ฐ˜๋ณต๋ฌธ ๊ณต๋ถ€๋ฅผ ํ•ด์•ผํ•œ๋‹ค.
ํŽ˜์–ด๋‹˜์ด ์ด๋Œ์–ด์ฃผ๋ฉด ๋Œ๋ ค๊ฐˆ ์ •๋„๋Š” ๋˜์–ด์•ผ์ง€ ์•Š๊ฒ ๋‚˜.

Retrospect ๐Ÿง

์˜ค๋Š˜ ์‚ฌ์‹ค ์•„์นจ๋ถ€ํ„ฐ ๋Šฆ์ž ์„ ์ž์„œ ์˜ค๋Š˜ ์‹œ์ž‘์ด ์˜ ์ข‹์ง€๋Š” ์•Š์•˜๋‹ค.
๊ทผ๋ฐ ์ฝ”ํ”Œ๋ฆฟํ•˜๋ฉด์„œ ํŽ˜์–ด๋‹˜์ด๋ž‘ ํ’€๊ณ  ๊ณต๋ถ€ํ•˜๊ณ  ํ•˜๋Š”๊ฒŒ ์žฌ๋ฐŒ์–ด์„œ ๋„๋กœ ๊ธฐ๋ถ„ ์ข‹์•„์ง ใ…Žใ…Ž ๋‹จ์ˆœํ•œ ๋†ˆ
๋‚ด๊ฐ€ ๋‹จ์ˆœํ•˜๋‹ค๋Š”๊ฑด ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ๋Š๋ผ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๊ธฐ๋ถ„ ๋‚˜์˜๋‹ค๊ฐ€๋„ ๋ฐฐ๋ถ€๋ฅด๋ฉด ๊ธฐ๋ถ„ ์ข‹์•„์ง„๋‹ค๋˜๊ฐ€
์ด๋Ÿฐ ๋‹จ์ˆœํ•จ์„ ์ž˜ ์ด์šฉํ•ด์„œ ์ฝ”๋”ฉ์„ ์•ž์œผ๋กœ๋„ ๊ณ„์† ์ฆ๊ธธ ์ˆ˜ ์žˆ๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค.

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

๊ทธ๋ฆฌ๊ณ  ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ… ๋ฐฉํ–ฅ๋„ ์กฐ๊ธˆ ๋ฐ”๊ฟ”๋ณด๋ ค๊ณ  ํ•˜๋Š”๋ฐ,
๋งˆ์นจ ์˜ค๋Š˜ ์ฝ”ํ”Œ๋ฆฟ์ด ํŽ˜์–ด๋‹˜์ด๋ž‘ ๋‘๋ฒˆ์งธ ๋งŒ๋‚จ์ด๊ธฐ๋„ ํ•˜๊ณ  ๊ฐ™์ด ๋ฌธ์ œ๋„ ์•Œ์ฐจ๊ฒŒ ์Šค๋ฌด์Šคํ•˜๊ฒŒ ํ’€๊ณ ํ•ด์„œ ์นœํ•ด์กŒ๋‹ค
๋‚˜๋งŒ ๊ทธ๋Ÿฐ๊ฑฐ๋ฉด.. ์ •๋ง ์Šฌํ”ˆ ์ผ์ด์•ผ..

์ด๋Ÿฐ ์ €๋Ÿฐ ์ด์•ผ๊ธฐํ•˜๋‹ค๊ฐ€ ๋ธ”๋กœ๊ทธ ์ด์•ผ๊ธฐ๋„ ํ–ˆ์—ˆ๋Š”๋ฐ, ๋†€๋ผ์› ๋˜๊ฒŒ ํŽ˜์–ด๋‹˜๋„ ๋‚˜๋ž‘ ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ํฌ์ŠคํŒ…์„ ํ•˜์…จ์—ˆ๋‹ค๋Š” ๊ฒƒ.
์ดˆ๋ฐ˜์—์•ผ ๋ฐฐ์šด ๋‚ด์šฉ ์ „๋ฐ˜์„ ์ ์—ˆ๋‹ค๊ณ  ํ•˜์…จ๋‹ค.
ํ•˜์ง€๋งŒ ์ ์  ๋ฐฐ์›Œ๊ฐ€๋Š” ๋‚ด์šฉ์ด ๋งŽ์•„์ง€๊ณ , ๊ทธ์—๋”ฐ๋ผ ํฌ์ŠคํŒ… ๋‚ด์šฉ๋„ ๋งŽ์•„์ ธ์„œ ๋ฏธ๋ฃจ๋Š” ์ผ์ด ์‹ฌ์‹ฌ์ฐฎ๊ฒŒ ์ผ์–ด๋‚˜์…จ๋‹ค๊ณ .
๊ทธ ์ด์•ผ๊ธฐ๋ฅผ ๋“ฃ๊ณ  ๋‚ด ๋ฏธ๋ž˜๋‹ค ์‹ถ์–ด์„œ ํฌ์ŠคํŒ… ๋ฐฉํ–ฅ์„ ์กฐ๊ธˆ ๋ฐ”๊พธ๊ธฐ๋กœ ํ–ˆ๋‹ค.

์˜ค๋Š˜ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ ๋Š”๋ฐ, ์‰ฝ๊ฒŒ ์ฐพ์€ ๋‚ด์šฉ๋ณด๋‹ค๋Š” ๊ณต๋“ค์—ฌ ์ฐพ์•„๋ฐฐ์šด ๋‚ด์šฉ ์œ„์ฃผ๋กœ ์ ๋Š” ๊ฒƒ์œผ๋กœ.
๊ณต๋“ค์—ฌ ์ฐพ์€ ๋‚ด์šฉ์„ ๋งŒ์•ฝ ๊นŒ๋จน์œผ๋ฉด ๋‹ค์‹œ ๊ณต๋“ค์—ฌ ์ฐพ์•„์•ผํ•˜๋‹ˆ๊นŒ

๋‚ด์ผ๋ถ€ํ„ฐ ๋‹ค์‹œ ์—ด์‹ฌํžˆ ํ•ด๋ณด์ž~~

Reference ๐Ÿ™‡

https://developer.mozilla.org/
https://www.w3schools.com/
https://ko.javascript.info/

profile
์–ด๋–ป๊ฒŒ ์ด๊ฑธ ํ’€์–ด๋‚ผ ์ˆ˜ ์žˆ์„๊นŒ

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