๐Ÿ“ [JS ๊ณต๋ถ€๊ธฐ๋ก] 0704~0707 - Math, Date, ์ •๊ทœํ‘œํ˜„์‹, String, Symbol, ์ดํ„ฐ๋Ÿฌ๋ธ”, ์Šคํ”„๋ ˆ๋“œ, ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง,

์ œ๋ก ยท2022๋…„ 7์›” 8์ผ
0

[JS ๊ณต๋ถ€๊ธฐ๋ก] TIL โœจ

๋ชฉ๋ก ๋ณด๊ธฐ
10/12

29์žฅ: Math

  • ์ˆ˜ํ•™์ ์ธ ์ƒ์ˆ˜์™€ ํ•จ์ˆ˜๋ฅผ ์œ„ํ•œ ์ •์  ๋ฉ”์„œ๋“œ์™€ ์ •์  ํ”„๋กœํผํ‹ฐ ์ œ๊ณต, ์ƒ์„ฑ์žํ•จ์ˆ˜X

Math ๋ฉ”์„œ๋“œ

  • Math.random()
    • 0์—์„œ 1๋ฏธ๋งŒ์˜ ๋‚œ์ˆ˜
  • Math.pow()
    • Math.pow(2, 3) => 2์˜ ์„ธ์ œ๊ณฑ ๋ฐ˜ํ™˜
  • Math.Max()
    • Math.max(...[1, 2, 3]) // ๋ฐฐ์—ด์ผ ๋•Œ๋Š” ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž ํ™œ์šฉ

30์žฅ: Date

  • ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์œ„ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋นŒํŠธ์ธ ๊ฐ์ฒด && ์ƒ์„ฑ์žํ•จ์ˆ˜

    Date ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ Date ๊ฐ์ฒด ์ƒ์„ฑ

  1. new Date() -> ํ˜„์žฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๊ฐ€์ง„ Date ๊ฐ์ฒด ๋ฐ˜ํ™˜
  2. Date() -> ํ˜„์žฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜(Date ๊ฐ์ฒดX)
  3. new Date(dateString) -> ๋‚ ์งœ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์„ Date ๊ฐ์ฒด๋กœ ๋ฐ˜ํ™˜
  4. new Date(year, month, [daty, hour ...]) -> ์ž…๋ ฅํ•œ ๊ฐ’์— ๋งž๋Š” Date ๊ฐ์ฒด ๋ฐ˜ํ™˜

31์žฅ: RegExp

์ •๊ทœํ‘œํ˜„์‹ -> ํŒจํ„ด ๋งค์นญ๊ธฐ๋Šฅ ์ œ๊ณต, ์ผ์ • ํŒจํ„ด์„ ๊ฐ€์ง„ ๋ฌธ์ž์—ด์˜ ์ง‘ํ•ฉ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹ ์–ธ์–ด

  • ํŒจํ„ด๊ณผ ํ”Œ๋ž˜๊ทธ๋กœ ๊ตฌ์„ฑ

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

    1. ์ •๊ทœ ํ‘œํ˜„์‹ ๋ฆฌํ„ฐ๋Ÿด -> const = regexp = /JS/gi
    2. RegExp ์ƒ์„ฑ์ž ํ•จ์ˆ˜ -> new RegExp(pattern, [,flag])
  • ํŒจํ„ด

    • .
    • {m, n}
    • |
    • [^]
    • $
    • ^[]

32์žฅ: String

  • new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœ์‹œ -> string ๋ž˜ํผ๊ฐ์ฒด ์ƒ์„ฑ๋จ

    • length ํ”„๋กœํผํ‹ฐ๊ฐ€์ง€๊ณ  ์ดํ„ฐ๋Ÿฌ๋ธ”ํ•จ
  • String ๋ฉ”์„œ๋“œ

    • ์›๋ณธ String ๋ž˜ํผ๊ฐ์ฒด๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฉ”์„œ๋“œ ์—†์Œ
    • ์™œ๋ƒํ•˜๋ฉด ๋ณ€๊ฒฝ๋œ Stirng ๋ž˜ํผ ๊ฐ์ฒด๋ฅผ ๋‹ค์‹œ ๋ฌธ์ž์—ด๋กœ ๋Œ๋ฆด ๋•Œ ์›๋ณธ ๋ฌธ์ž์—ด์ด ๋ณ€๊ฒฝ๋˜๊ธฐ ๋•Œ๋ฌธ์—

    ๊ณต๋ฐฑ๋ฌธ์ž ์ œ๊ฑฐ

    • String.prototype.replace ๋ฉ”์„œ๋“œ
      -> ์ •๊ทœํ‘œํ˜„์‹์„ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๋ฐฑ ๋ฌธ์ž ์ œ๊ฑฐ ๊ฐ€๋Šฅ
    • .trimStart, .trimEnd
      -> ์•ž๋’ค ๊ณต๋ฐฑ๋ฌธ์ž ์ œ๊ฑฐ๋จ

    replace์˜ ๋‘๋ฒˆ์งธ ์ธ์ˆ˜

    • ๋‘๋ฒˆ์งธ ์ธ์ˆ˜์˜ ํ•จ์ˆ˜๋ฅผ ๋„ฃ์–ด ์ฒซ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ์ธํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ทธ ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ๋„ฃ์„ ์ˆ˜ ์žˆ์Œ!

33์žฅ: Symbol

  • ์‹ฌ๋ฒŒ(symbol): ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์›์‹œ ํƒ€์ž…
  • ์ฃผ๋กœ ์œ ์ผํ•œ ํ”„๋กœํผํ‹ฐ ํ‚ค๋ฅผ ๋งŒ๋“œ๋ ค๊ณ  ์‚ฌ์šฉ
  • symbol() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์ƒ์„ฑ๊ฐ€๋Šฅ(์ƒ์„ฑ์žํ•จ์ˆ˜X)

34์žฅ: ์ดํ„ฐ๋Ÿฌ๋ธ”

  • ์ˆœํšŒ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜์„ ์ดํ„ฐ๋ ˆ์ด์…˜ ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•˜๋Š” ์ดํ„ฐ๋Ÿฌ๋ธ”๋กœ ํ†ต์ผ ์‹œํ‚ด
    -> for ...of, ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•, ๋ฐฐ์—ด ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น ๊ฐ€๋Šฅ

  • ์ดํ„ฐ๋Ÿฌ๋ธ”

    1. Symbol.iterator
    2. ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ์œผ๋กœ ์ƒ์† ๋ฐ›์€ ๊ฐ์ฒด
  • ์ดํ„ฐ๋ ˆ์ดํ„ฐ

    • Symbol.iterator ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ -> ์ดํ„ฐ๋ ˆ์ดํ„ฐ ๋ฐ˜ํ™˜(next ๋ฉ”์„œ๋“œ ๊ฐ€์ง)
    • next ๋ฉ”์„œ๋“œ๋Š” ํฌ์ธํ„ฐ ์—ญํ• ์„ ํ•˜๋ฉฐ, result ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•จ
    • next๋Š” value์™€ done ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ€์ง
      • value๋Š” ํ˜„์žฌ ์ˆœํšŒ์ค‘์ธ ์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ’
      • done์€ ์ˆœํšŒ ์™„๋ฃŒ ์—ฌ๋ถ€
  • ๋นŒํŠธ์ธ ์ดํ„ฐ๋Ÿฌ๋ธ”

    • Array
    • String
    • Map
    • Set
    • DOM ์ปฌ๋ ‰์…˜
    • arguments
    • TypedArray
  • for ...of

    • ์ดํ„ฐ๋Ÿฌ๋ธ”์„ ์ˆœํšŒํ•˜๋ฉฐ ์š”์†Œ ๋ณ€์ˆ˜์— ํ• ๋‹น
    • next ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฐ˜ํ™˜ํ•˜๋Š” value ๊ฐ’์„ ๋ณ€์ˆ˜์— ํ• ๋‹น
    • done์ด true์ด๋ฉด ์ˆœํšŒ ์ข…๋ฃŒ
  • ์œ ์‚ฌ๋ฐฐ์—ด๊ฐ์ฒด๋Š” ์ดํ„ฐ๋Ÿฌ๋ธ” ?!

    • ์œ ์‚ฌ๋ฐฐ์—ด๊ฐ์ฒด -> ์ธ๋ฑ์Šค๋กœ ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ & length ํ”„๋กœํผํ‹ฐ ๊ฐ–๋Š” ๊ฐ์ฒด
    • ๊ธฐ๋ณธ์ ์œผ๋กœ ์œ ์‚ฌ๋ฐฐ์—ด๊ฐ์ฒด๋Š” ๊ฐ์ฒด์ด๋ฏ€๋กœ ์ดํ„ฐ๋Ÿฌ๋ธ”X, for ..of ์‚ฌ์šฉX
    • but argumnets, NodeList, HTMLCollection ์€ ์ดํ„ฐ๋Ÿฌ๋ธ”์ด๋ฉด์„œ ์œ ์‚ฌ๋ฐฐ์—ด๊ฐ์ฒด
    • ์œ ์‚ฌ๋ฐฐ์—ด๊ฐ์ฒด์ด์ง€๋งŒ ์ดํ„ฐ๋Ÿฌ๋ธ”์ด ์•„๋‹Œ ๊ฒƒ์€ Array.from์„ ํ†ตํ•ด ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ
  • ์ดํ„ฐ๋ ˆ์ด์…˜ ํ”„๋กœํ† ์ฝœ

    • ๋ฐ์ดํ„ฐ ์†Œ๋น„์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๋ฅ ์ ์ด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ(ํ†ต์ผ๋œ ๊ทœ์•ฝ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—)
  • ๋ฌดํ•œ ์ดํ„ฐ๋Ÿฌ๋ธ”, ์ง€์—ฐ ํ‰๊ฐ€

    • ๋ฌดํ•œ ์ดํ„ฐ๋Ÿฌ๋ธ”๋กœ ๋ฌดํ•œ ์ˆ˜์—ด ๊ตฌํ˜„ ๊ฐ€๋Šฅ
    • ์ง€์—ฐํ‰๊ฐ€ -> ๋ฐ์ดํ„ฐ ๋กœ์ง๋งŒ ๋จผ์ € ๊ตฌํ˜„ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ํ•„์š”์‹œ ๊ทธ๋•Œ์„œ์•ผ ์ƒ์„ฑ
      • next ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐ์ดํ„ฐ ์ƒ์„ฑํ•˜์ง€ ์•Š์Œ
      • ์‹คํ–‰์†๋„ ๋น ๋ฅด๊ณ  ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„ ์ค„์ž„

35์žฅ: ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•(...)

  • ๋ญ‰์ณ ์žˆ๋Š” ๊ฐ’๋“ค์„ ํŽผ์ณ์„œ ๊ฐœ๋ณ„ ๋ชฉ๋ก์„ ๋งŒ๋“ค์–ด์คŒ
  • ์ดํ„ฐ๋Ÿฌ๋ธ”์ด๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅ!(์ผ๋ฐ˜ ๊ฐ์ฒด๋Š”X)
  • ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•์˜ ๊ฒฐ๊ณผ๋Š” ๊ฐ’์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜ ํ• ๋‹นX

์–ด๋””์„œ ์‚ฌ์šฉ?

  1. ํ•จ์ˆ˜ ํ˜ธ์ถœ๋ฌธ์˜ ์ธ์ˆ˜ ๋ชฉ๋ก
  • ์˜ˆ์‹œ

    const arr = [1, 2, 3]
    const max = Math.max(...arr)
    
    function foo(...rest) {
      console.log(rest) /// [1, 2, 3]
    }
    foo(...[1, 2, 3])
  • Rest ํŒŒ๋ผ๋ฏธํ„ฐ -> ์ธ์ˆ˜ ๋ชฉ๋ก์„ ๋ฐฐ์—ด๋กœ ์ „๋‹ฌ

  • ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ• -> ๋ญ‰์ณ ์žˆ๋Š” ๋ฐฐ์—ด์„ ๋ชฉ๋ก์œผ๋กœ ๋งŒ๋“ฆ

  1. ๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด์˜ ์š”์†Œ ๋ชฉ๋ก
  • concat, splice(์š”์†Œ ์ถ”๊ฐ€, ์ œ๊ฑฐ), ๋ฐฐ์—ด ๋ณต์‚ฌ, ์ดํ„ฐ๋Ÿฌ๋ธ”์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜
    • ์ดํ„ฐ๋Ÿฌ๋ธ”X ์œ ์‚ฌ๋ฐฐ์—ด๊ฐ์ฒด -> ์Šคํ”„๋ ˆ๋“œ ์‚ฌ์šฉX -> Array.from()
    • ์ดํ„ฐ๋Ÿฌ๋ธ”O ์œ ์‚ฌ๋ฐฐ์—ด๊ฐ์ฒด -> ์Šคํ”„๋ ˆ๋“œ ์‚ฌ์šฉO(arguments)
  1. ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์˜ ํ”„๋กœํผํ‹ฐ ๋ชฉ๋ก
  • ์ƒˆ๋กœ ์ œ์•ˆ๋œ ์Šคํ”„๋ ˆ๋“œ ํ”„๋กœํผํ‹ฐ -> ์ผ๋ฐ˜๊ฐ์ฒด๋„ ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ• ์ ์šฉO

36์žฅ: ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น

  • ์ดํ„ฐ๋Ÿฌ๋ธ” ๋˜๋Š” ๊ฐ์ฒด๋ฅผ 1๊ฐœ ์ด์ƒ์˜ ๋ณ€์ˆ˜์— ๊ฐœ๋ณ„์ ์œผ๋กœ ํ• ๋‹น
  • ์ฆ‰, ์›ํ•˜๋Š” ๊ฐ’๋งŒ ์ถ”์ถœํ•ด์„œ ์“ธ ์ˆ˜ ๊ฐ€ ์žˆ์Œ!

๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น

  • ํ• ๋‹น ๊ธฐ์ค€์€ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค! -> ์ˆœ์„œ๋Œ€๋กœ ํ• ๋‹น๋จ!
  • ์š”์†Œ ๊ฐœ์ˆ˜ ์ƒ๊ด€X
  • ๋ณ€์ˆ˜์— ๊ธฐ๋ณธ๊ฐ’ ์„ค์ • ๊ฐ€๋Šฅ!
    const [one = 1, two, three] = arr

๊ฐ์ฒด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น

  • ํ• ๋‹น ๊ธฐ์ค€์€ ํ”„๋กœํผํ‹ฐ ํ‚ค! -> ์ˆœ์„œ ์˜๋ฏธX
  • ๋ณ€์ˆ˜์— ๊ธฐ๋ณธ๊ฐ’ ์„ค์ • ๊ฐ€๋Šฅ!
  • ํ•จ์ˆ˜์— ๋งค๊ฐœ๋ณ€์ˆ˜์—๋„ ๊ฐ€๋Šฅ
    const user = { firstName: 'Elon', lastName: 'Musk' }
    const { lastName, firstName } = user
profile
Software Developer

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