λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Frontend/JavaScript

20. Number, Math, Date, RegExp

by yerin.dev 2023. 12. 21.

πŸ‘Ύ Number 

  • Number μƒμ„±μž ν•¨μˆ˜
    • 인수λ₯Ό μ „λ‹¬ν•˜μ§€ μ•Šκ³  new μ—°μ‚°μžμ™€ ν•¨κ»˜ ν˜ΈμΆœν•˜λ©΄ [[NumberData]] λ‚΄λΆ€ μŠ¬λ‘―μ— 0을 ν• λ‹Ήν•œ Number 래퍼 객체λ₯Ό μƒμ„±ν•œλ‹€.
    • new μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  Number μƒμ„±μž ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©΄ Number μΈμŠ€ν„΄μŠ€κ°€ μ•„λ‹Œ 숫자 λ°˜ν™˜

Number λ©”μ„œλ“œ

  1. Number.isInteger : 인수둜 μ „λ‹¬λœ μˆ«μžκ°’μ΄ μ •μˆ˜μΈμ§€ 검사.
  2. Number.prototype.toFixed : 숫자λ₯Ό λ°˜μ˜¬λ¦Όν•˜μ—¬ λ¬Έμžμ—΄λ‘œ λ°˜ν™˜. λ°˜μ˜¬λ¦Όν•˜λŠ” μ†Œμˆ˜μ  μ΄ν•˜ 자릿수λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜κ°’μ„ 인수둜 전달. 인수λ₯Ό μƒλž΅ν•˜λ©΄ κΈ°λ³Έκ°’ 0이 μ§€μ •(=μ •μˆ˜λ‘œ ν‘œν˜„)
  3. Number.prototype.toString : 숫자λ₯Ό λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•˜μ—¬ λ°˜ν™˜. 진법을 λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜κ°’μ„ 인수둜 전달할 수 μžˆλ‹€. 인수λ₯Ό μƒλž΅ν•˜λ©΄ 기본값은 10진법.

πŸ‘Ύ Math

Math λŠ” μƒμ„±μž ν•¨μˆ˜κ°€ μ•„λ‹ˆλ‹€. 정적 ν”„λ‘œνΌν‹°μ™€ 정적 λ©”μ„œλ“œλ§Œ 제곡

Math λ©”μ„œλ“œ

  1. Math.abs : 인수둜 μ „λ‹¬λœ 숫자의 μ ˆλŒ€κ°’ λ°˜ν™˜.
Math.abs(null); //-> 0
  1. Math.round : μ „λ‹¬λœ 숫자의 μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό λ°˜μ˜¬λ¦Όν•œ μ •μˆ˜ λ°˜ν™˜
  2. Math.ceil : 숫자의 μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό μ˜¬λ¦Όν•œ μ •μˆ˜ λ°˜ν™˜. μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό μ˜¬λ¦Όν•˜λ©΄ 더 큰 μ •μˆ˜κ°€ λœλ‹€.
  3. Math.floor : 숫자의 μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό λ‚΄λ¦Όν•œ μ •μˆ˜ λ°˜ν™˜. μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό 내리면 더 μž‘μ€ μ •μˆ˜κ°€ λœλ‹€.
  4. Math.sqrt : 제곱근 λ°˜ν™˜
  5. Math.random : μž„μ˜μ˜ λ‚œμˆ˜ λ°˜ν™˜. 0 이상 1 미만의 랜덀 숫자.
  6. Math.max : 전달받은 인수 쀑 κ°€μž₯ 큰 수 λ°˜ν™˜. μΈμˆ˜κ°€ μ „λ‹¬λ˜μ§€ μ•ŠμœΌλ©΄ -Infinity λ°˜ν™˜.
  7. Math.min : 전달받은 인수 쀑 κ°€μž₯ μž‘μ€ 수 λ°˜ν™˜. μΈμˆ˜κ°€ μ „λ‹¬λ˜μ§€ μ•ŠμœΌλ©΄ Infinity λ°˜ν™˜.

πŸ‘Ύ Date

λ‚ μ§œμ™€ μ‹œκ°„μ„ μœ„ν•œ λ©”μ„œλ“œλ₯Ό μ œκ³΅ν•˜λŠ” 빌트인 κ°μ²΄μ΄λ©΄μ„œ μƒμ„±μž ν•¨μˆ˜.

UTCλŠ” ꡭ제 ν‘œμ€€μ‹œλ₯Ό λ§ν•œλ‹€.

KSTλŠ” UTC에 9μ‹œκ°„μ„ λ”ν•œ μ‹œκ°„μ΄λ‹€.(KST κ°€ 9μ‹œκ°„ λΉ λ₯΄λ‹€.)

Date μƒμ„±μž ν•¨μˆ˜

  • DateλŠ” μƒμ„±μž ν•¨μˆ˜λ‹€. Date μƒμ„±μž ν•¨μˆ˜λ‘œ μƒμ„±ν•œ Date κ°μ²΄λŠ” λ‚΄λΆ€μ μœΌλ‘œ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜κ°’μ„ κ°–λŠ”λ‹€.
  • 이 값은 1970λ…„ 1μ›” 1일 00:00:00(UTC)을 기점으둜 Date 객체가 λ‚˜νƒ€λ‚΄λŠ” λ‚ μ§œμ™€ μ‹œκ°„κΉŒμ§€μ˜ λ°€λ¦¬μ΄ˆλ₯Ό λ‚˜νƒ€λ‚Έλ‹€.
  • Date μƒμ„±μž ν•¨μˆ˜λ‘œ μƒμ„±ν•œ Date κ°μ²΄λŠ” 기본적으둜 ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜κ°’μ„ κ°€μ§„λ‹€.
  1. new Date() : new μ—°μ‚°μžμ™€ ν•¨κ»˜ ν˜ΈμΆœν•˜λ©΄ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ κ°€μ§„ Date 객체λ₯Ό λ°˜ν™˜, new μ—°μ‚°μž 없이 ν˜ΈμΆœν•˜λ©΄ Date 객체λ₯Ό λ°˜ν™˜ν•˜μ§€ μ•Šκ³  λ‚ μ§œμ™€ μ‹œκ°„ 정보λ₯Ό λ‚˜νƒ€λ‚΄λŠ” λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•œλ‹€.
  2. new Date(milliseconds) : Date μƒμ„±μž ν•¨μˆ˜μ— 숫자 νƒ€μž…μ˜ λ°€λ¦¬μ΄ˆλ₯Ό 인수둜 μ „λ‹¬ν•˜λ©΄ 1970λ…„~을 기점으둜 인수둜 μ „λ‹¬λœ λ°€λ¦¬μ΄ˆλ§ŒνΌ κ²½κ³Όν•œ λ‚ μ§œμ™€ μ‹λ‚˜μ„ λ‚˜νƒ€λ‚΄λŠ” Date 객체 λ°˜ν™˜.
  3. new Date(dateString) : 인수둜 λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” λ¬Έμžμ—΄μ„ 인수둜 μ „λ‹¬ν•˜λ©΄ Date 객체 λ°˜ν™˜.
  4. new Date(μ—°, μ›”, 일, μ‹œ, λΆ„, 초, λ°€λ¦¬μ΄ˆ) : μ§€μ •λœ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” Date 객체 λ°˜ν™˜. μ΄λ•Œ μ—°, 월은 λ°˜λ“œμ‹œ μ§€μ •ν•΄μ•Ό ν•œλ‹€. μ§€μ •ν•˜μ§€ μ•Šμ€ μ˜΅μ…˜ μ •λ³΄λŠ” 0 λ˜λŠ” 1둜 μ΄ˆκΈ°ν™”.

Date λ©”μ„œλ“œ

  1. Date.now : 1970~을 기점으둜 ν˜„μž¬ μ‹œκ°„κΉŒμ§€ κ²½κ³Όν•œ λ°€λ¦¬μ΄ˆλ₯Ό 숫자둜 λ°˜ν™˜
  2. Date.parse : 1970~을 기점으둜 인수둜 μ „λ‹¬λœ μ§€μ •μ‹œκ°„κΉŒμ§€μ˜ λ°€λ¦¬μ΄ˆλ₯Ό 숫자둜 λ°˜ν™˜. new Date(dateString)의 인수 μ‚¬μš©.
  3. Date.prototype.getFullYear : Date 객체의 연도λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜λ₯Ό λ°˜ν™˜ν•œλ‹€.
  4. Date.prototype.getMonth
  5. Date.prototype.getDate
  6. Date.prototype.getDay : μΌμš”μΌμ€ 0이닀.
  7. Date.prototype.getHours
  8. Date.prototype.toLocaleString : 인수둜 μ „λ‹¬ν•œ λ‘œμΊ˜μ„ κΈ°μ€€μœΌλ‘œ λ‚ μ§œμ™€ μ‹œκ°„μ„ ν‘œν˜„ν•œ λ¬Έμžμ—΄μ„ λ°˜ν™˜. 인수λ₯Ό μƒλž΅ν•  경우 λΈŒλΌμš°μ €κ°€ λ™μž‘ 쀑인 μ‹œμŠ€ν…œμ˜ λ‘œμΊ˜μ„ μ μš©ν•œλ‹€.
  9. Date.prototype.toLocaleTimeString : 인수둜 μ „λ‹¬ν•œ λ‘œμΊ˜μ„ κΈ°μ€€μœΌλ‘œ μ‹œκ°„μ„ ν‘œν˜„ν•œ λ¬Έμžμ—΄μ„ λ°˜ν™˜.

πŸ‘Ύ μ •κ·œ ν‘œν˜„μ‹

μΌμ •ν•œ νŒ¨ν„΄μ„ κ°€μ§„ λ¬Έμžμ—΄μ˜ 집합을 ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” ν˜•μ‹ μ–Έμ–΄.
λ¬Έμžμ—΄μ„ λŒ€μƒμœΌλ‘œ νŒ¨ν„΄ λ§€μΉ­ κΈ°λŠ₯을 제곡(= νŠΉμ • νŒ¨ν„΄κ³Ό μΌμΉ˜ν•˜λŠ” λ¬Έμžμ—΄μ„ κ²€μƒ‰ν•˜κ±°λ‚˜ μΆ”μΆœ λ˜λŠ” μΉ˜ν™˜ν•  수 μžˆλŠ” κΈ°λŠ₯)

RegExp λ©”μ„œλ“œ

RegExp.prototype.test : 인수둜 전달받은 λ¬Έμžμ—΄μ— λŒ€ν•΄ μ •κ·œ ν‘œν˜„μ‹μ˜ νŒ¨ν„΄μ„ κ²€μƒ‰ν•˜μ—¬ λ§€μΉ­ κ²°κ³Όλ₯Ό λΆˆλ¦¬μ–Έ κ°’μœΌλ‘œ λ°˜ν™˜.

String.prototype.match : λŒ€μƒ λ¬Έμžμ—΄κ³Ό 인수둜 전달받은 μ •κ·œ ν‘œν˜„μ‹κ³Όμ˜ λ§€μΉ­ κ²°κ³Όλ₯Ό 결과둜 λ°˜ν™˜.

ν”Œλž˜κ·Έ

μ •κ·œ ν‘œν˜„μ‹μ˜ ν”Œλž˜κ·ΈλŠ” μ •κ·œ ν‘œν˜„μ‹μ˜ 검색 방식을 μ„€μ •ν•˜κΈ° μœ„ν•΄ μ‚¬μš©.

  • i : ignore case
  • g : Global λͺ¨λ“  λ¬Έμžμ—΄ μ „μ—­ 검색
  • m : multi line λ¬Έμžμ—΄μ˜ 행이 λ°”λ€Œλ”λΌλ„ νŒ¨ν„΄ 검색을 κ³„μ†ν•œλ‹€.

νŒ¨ν„΄ : μ •κ·œ ν‘œν˜„μ‹μ˜ νŒ¨ν„΄μ€ λ¬Έμžμ—΄μ˜ μΌμ •ν•œ κ·œμΉ™μ„ ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©.

// λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λ³„ν•˜μ§€ μ•Šκ³  μ•ŒνŒŒλ²³μ„ κ²€μƒ‰ν•˜λ €λ©΄…
const regExp = /[A-Za-z]+/g;

// 숫자 검색
const regExp = /[0-9]+/g;

\dλŠ” 숫자.

\DλŠ” μˆ«μžκ°€ μ•„λ‹Œ 문자λ₯Ό 의미.

\wλŠ” μ•ŒνŒŒλ²³, 숫자, μ–Έλ”μŠ€μ½”μ–΄. [A-Za-z0-9_]

\WλŠ” μ•ŒνŒŒλ²³, 숫자, μ–Έλ”μŠ€μ½”μ–΄κ°€ μ•„λ‹Œ 문자λ₯Ό 의미.

[…] λ‚΄μ˜ ^은 not의 의미.

[…] λ°–μ˜ ^은 λ¬Έμžμ—΄μ˜ μ‹œμž‘μ„ 의미.

$λŠ” λ¬Έμžμ—΄μ˜ λ§ˆμ§€λ§‰μ„ 의미.

'Frontend > JavaScript' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

22. Symbol κ³Ό μ΄ν„°λŸ¬λΈ”  (1) 2023.12.22
21. String λ¬Έμžμ—΄  (0) 2023.12.22
19. λ°°μ—΄  (1) 2023.12.21
18. ν™”μ‚΄ν‘œ ν•¨μˆ˜  (0) 2023.12.21
17. 클래슀  (1) 2023.12.21