πŸ“—
TIL
  • About
  • javascript
    • GoodParts
      • ν”„λ‘œν† νƒ€μž… 방식
      • RegexComponent
      • μž¬κ·€μ  호좜 (Recursive Call)
      • 객체λ₯Ό κΈ°μˆ ν•˜λŠ” 객체
      • μ˜ˆμ™Έ (Exception)
      • 호좜
      • λ¬Έμžμ—΄ (Strings)
      • μ°Έμ‘° (Reference)
      • λ°°μ—΄μ˜ νŠΉμ„±λ“€
      • 숫자 (Numbers)
      • λ©”λͺ¨μ΄μ œμ΄μ…˜ (Memoization)
      • λͺ¨λ“ˆ (Module)
      • μ—΄κ±° (Enumeration)
      • μ •κ·œ ν‘œν˜„μ‹
      • μ •κ·œ ν‘œν˜„μ‹ 객체 생성
      • ν”„λ‘œν† νƒ€μž… (Prototype)
      • 콜백 (Callback)
      • λ¬Έμž₯ (Statements)
      • ν•¨μˆ˜ ν‘œν˜„μ‹ μš”μ•½
      • μ˜μ‚¬ 클래슀 방식 (Pseudoclassical)
      • ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•œ 방식
      • ν΄λ‘œμ € (Closer)
      • λ°°μ—΄ (Array)
      • κΈ°λ³Έ νƒ€μž…μ— κΈ°λŠ₯ μΆ”κ°€
      • μžλ°”μŠ€ν¬λ¦½νŠΈ 뢄석
      • 인수 λ°°μ—΄(arguments)
      • Function
      • μœ νš¨λ²”μœ„(Scope)
    • YouDon'tKnowJS
      • νƒ€μž…
      • Native
      • λͺ…μ‹œμ  κ°•μ œλ³€ν™˜
      • λ¬Έμžμ—΄
      • ν•¨μˆ˜ vs 블둝 μŠ€μ½”ν”„
      • ν΄λ‘œμ €
      • λ°°μ—΄
      • 숫자
      • μ—°μ‚°μž μš°μ„ μˆœμœ„
      • μŠ€μ½”ν”„
      • μ•”μ‹œμ  κ°•μ œλ³€ν™˜
      • 래퍼
      • Statement
      • ν˜Έμ΄μŠ€νŒ…
      • Coercion
    • javascript
Powered by GitBook
On this page
  • Array
  • Date() and Error()
  • λ„€μ΄ν‹°λΈŒ ν”„λ‘œν† νƒ€μž…

Was this helpful?

  1. javascript
  2. YouDon'tKnowJS

Native

λ°°μ—΄, 객체, ν•¨μˆ˜, μ •κ·œμ‹ 값은 λ¦¬ν„°λŸ΄ ν˜•νƒœλ‘œ μƒμ„±ν•˜λŠ” 것이 μΌλ°˜μ μ΄μ§€λ§Œ λ¦¬ν„°λŸ΄μ€ μƒμ„±μž ν˜•μ‹μœΌλ‘œ λ§Œλ“  것과 λ™μΌν•œ μ’…λ₯˜μ˜ 객체λ₯Ό μƒμ„±ν•œλ‹€

Array

var a = new Array(3);
a; // [<3 empty slots>]

var b = [undefined, undefined, undefined];
b; // [undefined, undefined, undefined]

a.map(function(v, i) {return i;}); // [<3 empty slots>]
b.map(function(v, i) {return i;}); // [0, 1, 2]

a에 슬둯이 μ—†κΈ° λ•Œλ¬Έμ— map() ν•¨μˆ˜κ°€ μˆœνšŒν•  μ›μ†Œκ°€ μ—†λ‹€.

('빈 슬둯' 말고) μ§„μ§œ undefined κ°’ μ›μ†Œλ‘œ μ±„μ›Œμ§„ 배열은 (μ†μœΌλ‘œ μž…λ ₯ν•˜μ§€ μ•Šκ³ ) μ–΄λ–»κ²Œ μƒμ„±ν• κΉŒ?

var a = Array.apply(null, {length: 3});
a; // [undefined, undefined, undefined]

apply()λŠ” λͺ¨λ“  ν•¨μˆ˜μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•œ μœ ν‹Έλ¦¬ν‹°λ‘œ, νŠΉμ΄ν•œ λ°©λ²•μœΌλ‘œ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•œλ‹€

  • 첫번째 인자 thisλŠ” 객체 바인딩

  • λ‘λ²ˆμ§Έ μΈμžλŠ” 인자의 λ°°μ—΄λ‘œμ„œ 이 μ•ˆμ— ν¬ν•¨λœ μ›μ†Œλ“€μ΄ 펼쳐져 ν•¨μˆ˜μ˜ 인자둜 전달됨

Date() and Error()

λ„€μ΄ν‹°λΈŒ μƒμ„±μž Date()와 Error()λŠ” λ¦¬ν„°λŸ΄ ν˜•μ‹μ΄ μ—†μœΌλ―€λ‘œ λ‹€λ₯Έ λ„€μ΄ν‹°λΈŒμ— λΉ„ν•΄ μœ μš©ν•˜λ‹€

date 객체 값은 new Date()둜 μƒμ„±ν•œλ‹€. 이 μƒμ„±μžλŠ” λ‚ μ§œ/μ‹œκ°μ„ 인자둜 λ°›λŠ”λ‹€

if (!Date.now) {
    Date.now = function() {
        return (new Date()).getTime();
    };
}

new ν‚€μ›Œλ“œ 없이 Date()λ₯Ό ν˜ΈμΆœν•˜λ©΄ ν˜„μž¬ λ‚ μ§œ/μ‹œκ°μ— ν•΄λ‹Ήν•˜λŠ” λ¬Έμžμ—΄μ„ λ°˜ν™˜

Error() μƒμ„±μžλŠ” μ•žμ— newκ°€ μžˆλ“  μ—†λ“  κ²°κ³ΌλŠ” κ°™λ‹€

error 객체의 μ£Ό μš©λ„λŠ” ν˜„μž¬μ˜ μ‹€ν–‰ μŠ€νƒ μ½˜ν…μŠ€νŠΈλ₯Ό ν¬μ°©ν•˜μ—¬ 객체에 λ‹΄λŠ”

λ„€μ΄ν‹°λΈŒ ν”„λ‘œν† νƒ€μž…

λ‚΄μž₯ λ„€μ΄ν‹°λΈŒ μƒμ„±μžλŠ” 각자의 .prototype 객체λ₯Ό κ°€μ§„λ‹€

  • prototype κ°μ²΄μ—λŠ” ν•΄λ‹Ή 객체의 ν•˜μœ„ νƒ€μž…λ³„λ‘œ κ³ μœ ν•œ 둜직이 담겨 μžˆλ‹€

μ˜ˆμ»¨λŒ€, λ¬Έμžμ—΄ μ›μ‹œκ°’μ„ λ°•μ‹±ν•˜μ—¬ ν™•μž₯ν•œ κ²ƒκΉŒμ§€ 포함해 λͺ¨λ“  String κ°μ²΄λŠ” String.prototyp 객체에 μ •μ˜λœ λ©”μ„œλ“œμ— μ ‘κ·Ό κ°€λŠ₯

  • String.prototype.indexOf(): λ¬Έμžμ—΄μ—μ„œ νŠΉμ • 문자의 μœ„μΉ˜ 검색

  • String.prototype.charAt(): λ¬Έμžμ—΄μ—μ„œ νŠΉμ • μœ„μΉ˜μ˜ 문자 λ°˜ν™˜

  • String.prototype.substr() / String.prototype.substring() / String.prototype.slice(): λ¬Έμžμ—΄μ˜ 일뢀λ₯Ό μƒˆλ‘œμš΄ λ¬Έμžμ—΄λ‘œ μΆ”μΆœ

  • String.prototype.toUpperCase() / String.prototype.toLowerCase(): λŒ€λ¬Έμž/μ†Œλ¬Έμžλ‘œ λ³€ν™˜λœ μƒˆλ‘œμš΄ λ¬Έμžμ—΄ 생성

  • String.prototype.trim(): μ•ž/λ’€μ˜ κ³΅λž€μ΄ 제거된 μƒˆλ‘œμš΄ λ¬Έμžμ—΄ 생성

이 쀑 λ¬Έμžμ—΄ 값을 λ³€κ²½ν•˜λŠ” λ©”μ„œλ“œλŠ” μ—†κ³  μˆ˜μ •μ΄ μΌμ–΄λ‚˜λ©΄ 항상 κΈ°μ‘΄ κ°’μœΌλ‘œλΆ€ν„° μƒˆλ‘œμš΄ 값을 생성함

Previousνƒ€μž…Nextλͺ…μ‹œμ  κ°•μ œλ³€ν™˜

Last updated 4 years ago

Was this helpful?