Skip to content

Latest commit

Β 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
  • ν™”μ‚΄ν‘œ ν•¨μˆ˜ μ‚¬μš©ν•˜κΈ° : function은 ν˜Έμ΄μŠ€νŒ…μ΄ ν•„μš”ν•  λ•Œλ§Œ
  • var ν‚€μ›Œλ“œ μ‚¬μš©ν•˜μ§€ μ•ŠκΈ°
ꡬ뢄 constructor prototype super arguments
μΌλ°˜ν•¨μˆ˜ O O X O
λ©”μ„œλ“œ X X O O
ν™”μ‚΄ν‘œ ν•¨μˆ˜ X X X X

ES6 λ©”μ„œλ“œλŠ” μžμ‹ μ„ λ°”μΈλ”©ν•œ 객체λ₯Ό κ°€λ¦¬ν‚€λŠ” λ‚΄λΆ€ 슬둯 HomeObjectλ₯Ό κ°–μœΌλ―€λ‘œ super ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

  • Array.of : μ „λ‹¬λœ 인수λ₯Ό μš”μ†Œλ‘œ κ°–λŠ” λ°°μ—΄ 생성, Array() μƒμ„±μž ν•¨μˆ˜λž‘ λ‹€λ₯΄κ²Œ μ „λ‹¬λœ μΈμˆ˜κ°€ 1개이고 μˆ«μžμ΄λ”λΌλ„ 인수λ₯Ό μš”μ†Œλ‘œ κ°–λŠ” λ°°μ—΄ 생성

    Array.of(1, 2, 3) // [1, 2, 3]
  • Array.from : μœ μ‚¬ λ°°μ—΄ 객체/μ΄ν„°λŸ¬λΈ” 객체λ₯Ό 인수둜 전달받아 λ°°μ—΄λ‘œ λ³€ν™˜ν•˜μ—¬ λ°˜ν™˜

    • 콜백 ν•¨μˆ˜λ₯Ό 톡해 값을 λ§Œλ“€λ©΄μ„œ μš”μ†Œλ₯Ό μ±„μšΈ 수 μžˆλ‹€.
    • 콜백 ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’μœΌλ‘œ κ΅¬μ„±λœ λ°°μ—΄ λ°˜ν™˜
    Array.from({length:2, 0: 'a', 1:'b'}); // ['a','b']
    Array.from('hello'); // ['h','e','l','l','o']
    Array.from({length:2});  // [undefined, undefined]
    Array.from({length:2}, (item, index) => index); // [0, 1]

배열은 ν”„λ‘œνΌν‹°λ₯Ό κ°€μ§ˆ 수 있으며, ν”„λ‘œνΌν‹°λŠ” length에 영ν–₯을 μ£Όμ§€ μ•ŠλŠ”λ‹€.

λ°°μ—΄μ—λŠ” 원본 λ°°μ—΄(λ°°μ—΄ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•œ 배열인 λ°°μ—΄ λ©”μ„œλ“œμ˜ κ΅¬ν˜„μ²΄ λ‚΄λΆ€μ—μ„œ thisκ°€ κ°€λ¦¬ν‚€λŠ” 객체)을 직접 λ³€κ²½ν•˜λŠ” λ©”μ„œλ“œμ™€ 원본 배열을 직접 λ³€κ²½ν•˜μ§€ μ•Šκ³  μƒˆλ‘œμš΄ 배열을 μƒμ„±ν•˜μ—¬ λ°˜ν™˜ν•˜λŠ” λ©”μ„œλ“œκ°€ μžˆλ‹€.

  • Array.isArray : μ „λ‹¬λœ μΈμˆ˜κ°€ 배열이면 true, μ•„λ‹ˆλ©΄ false

  • Array.prototype

    원본 λ°°μ—΄ λ³€κ²½

    • *.indexOf(item) : μ‘΄μž¬ν•˜λŠ”μ§€ 확인(첫번째둜 κ²€μƒ‰λœ 인덱슀 λ°˜ν™˜, μ—†μœΌλ©΄ -1)

      • 배열에 NaN이 ν¬ν•¨λ˜μ–΄ μžˆλŠ”μ§€ 확인할 수 μ—†λ‹€.
        // trueκ°€ λ‚˜μ™€μ•Ό ν•œλ‹€.
        [NaN].indexOf(NaN) !== -1; // false
    • *.includes(item, start) : μ‘΄μž¬ν•˜λŠ”μ§€ 확인(booelan)

      • item μš”μ†Œ, start 검사λ₯Ό μ‹œμž‘ν•  μœ„μΉ˜(-1일 경우 μ—­μˆœμœΌλ‘œ. length + index μ—°μ‚°)
      • 배열에 NaN이 ν¬ν•¨λ˜μ–΄ μžˆλŠ”μ§€ 확인할 수 μ—†λ‹€.
        [NaN].includes(NaN); // true
    • *.push(item) : μ„±λŠ₯이 μ’‹μ§€ μ•ŠμŒ, λ§ˆμ§€λ§‰ μš”μ†Œλ‘œ μΆ”κ°€ν•˜κ³  length ν”„λ‘œνΌν‹° κ°’ λ°˜ν™˜

    • *.pop() : λ§ˆμ§€λ§‰ μš”μ†Œλ₯Ό μ œκ±°ν•˜κ³  μš”μ†Œ λ°˜ν™˜

    • *.unshift(item) : 첫번째 μš”μ†Œλ‘œ μΆ”κ°€ν•˜κ³  length ν”„λ‘œνΌν‹° κ°’ λ°˜ν™˜

    • *.shift() : 첫번째 μš”μ†Œλ₯Ό μ œκ±°ν•˜κ³  μš”μ†Œ λ°˜ν™˜

    • *.splice(start, deleteCount, items) : 원본 배열을 직접 λ³€κ²½

      • start μ‹œμž‘μœ„μΉ˜, deleteCount μ‚­μ œν•  개수, items 이λ₯Ό λŒ€μ²΄ν•  μš”μ†Œ : start <= deleteCount
    • *.reverse() : 원본 λ°°μ—΄μ˜ μˆœμ„œλ₯Ό λ°˜λŒ€λ‘œ λ’€μ§‘λŠ”λ‹€.

    • *.fill(item, start, end) : 인수둜 전달받은 값을 λ°°μ—΄μ˜ μ²˜μŒλΆ€ν„° λκΉŒμ§€ μš”μ†Œλ‘œ μ±„μš΄λ‹€.

      • item μ±„μšΈ μš”μ†Œ, start μ‹œμž‘μœ„μΉ˜, end μ’…λ£Œν•  인덱슀

    원본 λ°°μ—΄ λ³€κ²½ μ•ˆλ¨

    • *.concat(item) : 원본 λ°°μ—΄μ˜ λ§ˆμ§€λ§‰ μš”μ†Œλ‘œ μΆ”κ°€ν•œ μƒˆλ‘œμš΄ λ°°μ—΄ λ°˜ν™˜, 인수둜 μ „λ‹¬ν•œ 값이 배열이라면 이λ₯Ό ν•΄μ²΄ν•˜μ—¬ μƒˆλ‘œμš΄ λ°°μ—΄μ˜ μš”μ†Œλ‘œ μΆ”κ°€
      • *.concat λ©”μ„œλ“œλŠ” μŠ€ν”„λ ˆλ“œ λ¬Έλ²•μœΌλ‘œ λŒ€μ²΄ κ°€λŠ₯
    • *.slice(start, end) : μ „λ‹¬λœ λ²”μœ„μ˜ μš”μ†Œλ“€μ„ λ³΅μ‚¬ν•˜μ—¬ λ°°μ—΄λ‘œ λ°˜ν™˜
      • start μ‹œμž‘μœ„μΉ˜, end μ’…λ£Œν•  인덱슀 : start <= end
    • *.join(separator) : 원본 λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό λ¬Έμžμ—΄λ‘œ λ°˜ν™˜ν•˜κ³  이λ₯Ό κ΅¬λΆ„μžλ‘œ μ—°κ²°ν•œλ‹€. κΈ°λ³Έ κ΅¬λΆ„μžλŠ” 콀마(,)이닀.
    • *.flat(depth) : 인수둜 μ „λ‹¬ν•œ 깊이만큼 배열을 평탄화
      [1, [2, [3, [4]]]].flat(2); // [1, 2, 3, [4]]
      [1, [2, [3, [4]]]].flat().flat(); // [1, 2, 3, [4]]
      [1, [2, [3, [4]]]].flat(Infinity); // [1, 2, 3, 4]

    κ³ μ°¨ ν•¨μˆ˜ : κ°€λ³€ 데이터λ₯Ό ν”Όν•˜κ³  λΆˆλ³€μ„±μ„ μ§€ν–₯ν•˜λŠ” ν•¨μˆ˜ν‰ ν”„λ‘œκ·Έλž˜λ°μ— κΈ°λ°˜μ„ 두고 μžˆλ‹€. ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ€ 순수 ν•¨μˆ˜μ™€ 보쑰 ν•¨μˆ˜μ˜ 쑰합을 톡해 둜직 λ‚΄μ˜ 쑰건문과 λ°˜λ³΅λ¬Έμ„ μ œκ±°ν•˜μ—¬ λ³΅μž‘μ„±μ„ ν•΄κ²°, λ³€μˆ˜ μ‚¬μš©μ„ μ–΅μ œν•˜μ—¬ μƒνƒœ 변경을 ν”Όν•œλ‹€. 즉 순수 ν•¨μˆ˜λ₯Ό 톡해 λΆ€μˆ˜ 효과λ₯Ό μ΅œλŒ€ν•œ μ–΅μ œν•˜μ—¬ ν”„λ‘œκ·Έλž¨ μ•ˆμ •μ„±μ„ 높이기 μœ„ν•¨μ΄λ‹€.

    원본 λ°°μ—΄ λ³€κ²½

    • *.sort() : λ°°μ—΄μ˜ μš”μ†Œ μ •λ ¬. 기본적으둜 μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μš”μ†Œ μ •λ ¬ν•˜λŠ”λ° μœ λ‹ˆμ½”λ“œμ˜ μ½”λ“œ 포인트 μˆœμ„œλ₯Ό λ”°λ₯Έλ‹€. 숫자 μš”μ†Œλ₯Ό μ •λ ¬ν•  λ•ŒλŠ” μ •λ ¬ μˆœμ„œλ₯Ό μ •μ˜ν•˜λŠ” 비ꡐ ν•¨μˆ˜λ₯Ό 인수둜 전달해야 ν•œλ‹€.
      const todos = [
        { id: 4, content: 'JavaScript' },
        { id: 1, content: 'HTML' },
        { id: 2, content: 'CSS' }
      ];
      
      // 비ꡐ ν•¨μˆ˜. λ§€κ°œλ³€μˆ˜ keyλŠ” ν”„λ‘œνΌν‹° ν‚€λ‹€.
      function compare(key) {
        // ν”„λ‘œνΌν‹° 값이 λ¬Έμžμ—΄μΈ 경우 - μ‚°μˆ  μ—°μ‚°μœΌλ‘œ λΉ„κ΅ν•˜λ©΄ NaN이 λ‚˜μ˜€λ―€λ‘œ 비ꡐ 연산을 μ‚¬μš©ν•œλ‹€.
        // 비ꡐ ν•¨μˆ˜λŠ” μ–‘μˆ˜/음수/0을 λ°˜ν™˜ν•˜λ©΄ λ˜λ―€λ‘œ - μ‚°μˆ  μ—°μ‚° λŒ€μ‹  비ꡐ 연산을 μ‚¬μš©ν•  수 μžˆλ‹€.
        return (a, b) => (a[key] > b[key] ? 1 : (a[key] < b[key] ? -1 : 0));
      }
      
      // idλ₯Ό κΈ°μ€€μœΌλ‘œ μ˜€λ¦„μ°¨μˆœ μ •λ ¬
      todos.sort(compare('id'));
      console.log(todos);
      /*
      [
        { id: 1, content: 'HTML' },
        { id: 2, content: 'CSS' },
        { id: 4, content: 'JavaScript' }
      ]
      */
      
      // contentλ₯Ό κΈ°μ€€μœΌλ‘œ μ˜€λ¦„μ°¨μˆœ μ •λ ¬
      todos.sort(compare('content'));
      console.log(todos);
      /*
      [
        { id: 2, content: 'CSS' },
        { id: 1, content: 'HTML' },
        { id: 4, content: 'JavaScript' }
      ]
      */
    • *.forEach() : 기본적으둜 원본 배열을 λ³€κ²½ν•˜μ§€ μ•ŠμœΌλ‚˜ 콜백 ν•¨μˆ˜λ₯Ό 톡해 원본 배열을 λ³€κ²½ν•  수 μžˆλ‹€.
      • ν•΄λ‹Ή λ©”μ„œλ“œμ˜ λ°˜ν™˜κ°’μ€ 항상 undefined이닀.
      • ν™”μ‚΄ν‘œ ν•¨μˆ˜λ‘œ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ λ‘λ²ˆμ§Έ 인자둜 thisλ₯Ό 전달해도 λœλ‹€.
      • ν¬μ†Œ λ°°μ—΄μ˜ 경우 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μš”μ†ŒλŠ” 순회 λŒ€μƒμ—μ„œ μ œμ™Έλ˜λ©°, μ΄λŠ” map, filter, reduce에도 λ™μΌν•˜λ‹€.
      • for문에 λΉ„ν•΄ μ„±λŠ₯이 μ’‹μ§„ μ•Šλ‹€. κ·ΈλŸ¬λ‚˜ 가독성이 μ’‹μœΌλ―€λ‘œ 높은 μ„±λŠ₯이 ν•„μš”ν•˜μ§€ μ•Šλ‹€λ©΄ forEach λ©”μ„œλ“œλ₯Ό ꢌμž₯ν•œλ‹€.

    원본 λ°°μ—΄ λ³€κ²½ μ•ˆλ¨

    • *.map() : μžμ‹ μ„ ν˜ΈμΆœν•œ λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό 순회, 인수둜 전달받은 콜백 ν•¨μˆ˜λ₯Ό 반볡 ν˜ΈμΆœν•˜λ©° 콜백 ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’λ“€λ‘œ κ΅¬μ„±λœ μƒˆλ‘œμš΄ 배열을 λ°˜ν™˜ν•œλ‹€.
      • map λ©”μ„œλ“œλ‘œ μƒμ„±ν•œ length 값은 ν˜ΈμΆœν•œ λ°°μ—΄μ˜ length ν”„λ‘œνΌν‹°μ™€ μ •ν™•νžˆ μΌμΉ˜ν•œλ‹€. 즉, 1:!둜 λ§€ν•‘ν•œλ‹€.
    • *.filter() : μžμ‹ μ„ ν˜ΈμΆœν•œ λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό 순회, 인수둜 전달받은 콜백 ν•¨μˆ˜λ₯Ό 반볡 ν˜ΈμΆœν•˜λ©° 콜백 ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’μ΄ true인 μš”μ†Œλ‘œλ§Œ κ΅¬μ„±λœ μƒˆλ‘œμš΄ λ°°μ—΄ λ°˜ν™˜
    • *.reducer() : μžμ‹ μ„ ν˜ΈμΆœν•œ λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό 순회, 인수둜 전달받은 콜백 ν•¨μˆ˜λ₯Ό 반볡 ν˜ΈμΆœν•œλ‹€. 단, 콜백 ν•¨μˆ˜μ˜ λ°˜ν™˜ 값을 λ‹€μŒ 순회 μ‹œ 콜백 ν•¨μˆ˜μ˜ 첫 번째 인수둜 μ „λ‹¬ν•˜λ©΄μ„œ 콜백 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•΄ ν•˜λ‚˜μ˜ 결과값을 λ§Œλ“€μ–΄ λ°˜ν™˜ν•œλ‹€. λˆ„μ ν•˜μ—¬ λ°˜ν™˜ν•˜λŠ” ν˜•νƒœμ΄λ‹€.
    • *.some() : μžμ‹ μ„ ν˜ΈμΆœν•œ λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό 순회, 인수둜 전달받은 콜백 ν•¨μˆ˜λ₯Ό 반볡 ν˜ΈμΆœν•œλ‹€. 콜백 ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’μ΄ 단 ν•œλ²ˆμ΄λΌλ„ 참이라면 true, λͺ¨λ‘ 거짓이면 falseλ₯Ό λ°˜ν™˜ν•œλ‹€.
    • *.every() : μžμ‹ μ„ ν˜ΈμΆœν•œ λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό 순회, 인수둜 전달받은 콜백 ν•¨μˆ˜λ₯Ό 반볡 ν˜ΈμΆœν•œλ‹€. 콜백 ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’μ΄ λͺ¨λ‘ 참이면 true, 단 ν•œλ²ˆμ΄λΌλ„ 거짓이면 falseλ₯Ό λ°˜ν™˜ν•œλ‹€.
    • *.find() : μžμ‹ μ„ ν˜ΈμΆœν•œ λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό 순회, 인수둜 전달받은 콜백 ν•¨μˆ˜λ₯Ό 반볡 ν˜ΈμΆœν•˜λ©° λ°˜ν™˜κ°’μ΄ true인 첫 번째 μš”μ†Œλ₯Ό λ°˜ν™˜ν•œλ‹€. μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©΄ undefined이닀.
    • *.findInder() : μžμ‹ μ„ ν˜ΈμΆœν•œ λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό 순회, 인수둜 전달받은 콜백 ν•¨μˆ˜λ₯Ό 반볡 ν˜ΈμΆœν•˜λ©° λ°˜ν™˜ 값이 true인 첫 번째 μš”μ†Œμ˜ 인덱슀λ₯Ό λ°˜ν™˜ν•œλ‹€. μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©΄ -1을 λ°˜ν™˜ν•œλ‹€.
    • *.flatMap() : map λ©”μ„œλ“œμ™€ flat λ©”μ„œλ“œλ₯Ό 순차적으둜 μ‹€ν–‰ν•˜λŠ” νš¨κ³Όκ°€ μžˆλ‹€.
      • 단, 1λ‹¨κ³„λ§Œ ν‰νƒ„ν™”ν•œλ‹€.
        const arr = ['hello', 'world'];
        
        // flatMap은 1λ‹¨κ³„λ§Œ ν‰νƒ„ν™”ν•œλ‹€.
        arr.flatMap((str, index) => [index, [str, str.length]]);
        // -> [[0, ['hello', 5]], [1, ['world', 5]]] => [0, ['hello', 5], 1, ['world', 5]]
        
        // 평탄화 깊이λ₯Ό μ§€μ •ν•΄μ•Ό ν•˜λ©΄ flatMap λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ§€ 말고 map λ©”μ„œλ“œμ™€ flat λ©”μ„œλ“œλ₯Ό 각각 ν˜ΈμΆœν•œλ‹€.
        arr.map((str, index) => [index, [str, str.length]]).flat(2);
        // -> [[0, ['hello', 5]], [1, ['world', 5]]] => [0, 'hello', 5, 1, 'world', 5]
  • Number

    ν”„λ‘œνΌν‹°

    • *.EPSILON : λΆ€λ™μ†Œμˆ˜μ μœΌλ‘œ 인해 λ°œμƒν•˜λŠ” 였차λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ‚¬μš©
      function isEqual(a, b){
        // a와 bλ₯Ό λΊ€ κ°’μ˜ μ ˆλŒ€κ°’μ΄ Number.EPSILON보닀 μž‘μœΌλ©΄ 같은 수둜 μΈμ •ν•œλ‹€.
        return Math.abs(a - b) < Number.EPSILON;
      }
      
      isEqual(0.1 + 0.2, 0.3); // -> true
    • *.MAX_VALUE : ν‘œν˜„ κ°€λŠ₯ν•œ κ°€μž₯ 큰 μ–‘μˆ˜ κ°’. Infinity 이전 κ°’
    • *.MIN_VALUE : ν‘œν˜„ κ°€λŠ₯ν•œ κ°€μž₯ μž‘μ€ μ–‘μˆ˜ κ°’. 0 λ‹€μŒ κ°’
    • *.MAX_SAFE_INTEGER : μ•ˆμ „ν•˜κ²Œ ν‘œν˜„ κ°€λŠ₯ν•œ κ°€μž₯ 큰 μ •μˆ˜ κ°’
    • *.MIN_SAFE_INTEGER : μ•ˆμ „ν•˜κ²Œ ν‘œν˜„ κ°€λŠ₯ν•œ κ°€μž₯ μž‘μ€ μ •μˆ˜ κ°’
    • *.POSITIVE_INFINITY : μ–‘μ˜ λ¬΄ν•œλŒ€. Infinity와 동일
    • *.NEGATIVE_INFINITY : 음의 λ¬΄ν•œλŒ€. -Infinity와 동일
    • *.NaN : μˆ«μžκ°€ μ•„λ‹˜. globalThis.NaNκ³Ό 동일

    λ©”μ„œλ“œ : λŒ€μƒμ„ 암묡적 νƒ€μž… λ³€ν™˜ν•˜μ§€ μ•ŠλŠ”λ‹€.

    • *.isFinite(item) : 정상적인 μœ ν•œμˆ˜(Infinity)인지 κ²€μ‚¬ν•˜μ—¬ boolean λ°˜ν™˜
      • globalThis의 isFinite와 닀름.
    • *.isInteger(item) : μ •μˆ˜μΈμ§€ κ²€μ‚¬ν•˜μ—¬ boolean λ°˜ν™˜
    • *.isNaN(item) : NaN인지 κ²€μ‚¬ν•˜μ—¬ boolean λ°˜ν™˜
    • *.isSafeInteger(item) : μ•ˆμ „ν•œ μ •μˆ˜μΈμ§€ κ²€μ‚¬ν•˜μ—¬ boolean λ°˜ν™˜
    • *.toExponential(x) : μ§€μˆ˜ ν‘œκΈ°λ²•μœΌλ‘œ λ³€ν™˜ν•˜μ—¬ λ¬Έμžμ—΄λ‘œ λ°˜ν™˜. 기본값은 μ£Όμ–΄μ§„ 값을 λ‚˜νƒ€λ‚΄λŠ”λ° ν•„μš”ν•œ μžλ¦Ώμˆ˜μ΄λ‹€.
      • μ§€μˆ˜ ν‘œκΈ°λ²• : 맀우 ν¬κ±°λ‚˜ μž‘μ€ 숫자λ₯Ό ν‘œκΈ°ν•  λ•Œ 주둜 μ‚¬μš©, e(Exponent) μ•žμ— μžˆλŠ” μˆ«μžμ— 10의 nμŠΉμ„ κ³±ν•˜λŠ” ν˜•μ‹μœΌλ‘œ λ‚˜νƒ€λ‚Έλ‹€.
        (77.1234).toExponential();  // -> "7.71234e+1"
        (77.1234).toExponential(4); // -> "7.7123e+1"
        (77.1234).toExponential(2); // -> "7.71e+1"
        77.toExponential(); // -> SyntaxError: Invalid or unexpected token
        77.1234.toExponential(); // -> "7.71234e+1"
        77 .toExponential(); // -> "7.7e+1"
    • *.toFixed(x) : 숫자λ₯Ό λ°˜μ˜¬λ¦Όν•˜μ—¬ λ¬Έμžμ—΄λ‘œ λ°˜ν™˜. μ†Œμˆ˜μ  μ΄ν•˜μ˜ λ§€κ°œλ³€μˆ˜λ§ŒνΌμ˜ 자릿수λ₯Ό μœ νš¨ν•˜κ²Œ νŒλ‹¨ν•˜κ³  λ‚˜λ¨Έμ§€λ₯Ό λ°˜μ˜¬λ¦Όν•œλ‹€. 기본값은 0이닀.
      // μ†Œμˆ˜μ  μ΄ν•˜ 반올림. 인수λ₯Ό μƒλž΅ν•˜λ©΄ κΈ°λ³Έκ°’ 0이 μ§€μ •λœλ‹€.
      (12345.6789).toFixed(); // -> "12346"
      // μ†Œμˆ˜μ  μ΄ν•˜ 1자리수 유효, λ‚˜λ¨Έμ§€ 반올림
      (12345.6789).toFixed(1); // -> "12345.7"
      // μ†Œμˆ˜μ  μ΄ν•˜ 2자리수 유효, λ‚˜λ¨Έμ§€ 반올림
      (12345.6789).toFixed(2); // -> "12345.68"
      // μ†Œμˆ˜μ  μ΄ν•˜ 3자리수 유효, λ‚˜λ¨Έμ§€ 반올림
      (12345.6789).toFixed(3); // -> "12345.679"
    • *.toPrecision(x) : λ‚˜λ¨Έμ§€ 자릿수λ₯Ό λ°˜μ˜¬λ¦Όν•˜μ—¬ λ¬Έμžμ—΄λ‘œ λ°˜ν™˜. 전체 자릿수둜 ν‘œν˜„ν•  수 μ—†λŠ” 경우 μ§€μˆ˜ ν‘œκΈ°λ²•μœΌλ‘œ κ²°κ³Ό λ°˜ν™˜. 기본값은 0이닀.
      // 전체 자리수 유효. 인수λ₯Ό μ „λ‹¬ν•˜μ§€ μ•ŠμœΌλ©΄ κΈ°λ³Έκ°’ 0이 μ „λ‹¬λœλ‹€.
      (12345.6789).toPrecision(); // -> "12345.6789"
      // 전체 1자리수 유효, λ‚˜λ¨Έμ§€ 반올림
      (12345.6789).toPrecision(1); // -> "1e+4"
      // 전체 2자리수 유효, λ‚˜λ¨Έμ§€ 반올림
      (12345.6789).toPrecision(2); // -> "1.2e+4"
      // 전체 6자리수 유효, λ‚˜λ¨Έμ§€ 반올림
      (12345.6789).toPrecision(6); // -> "12345.7"
    • *.toString(x) : 진법을 λ‚˜νƒ€λ‚΄λŠ” 2~36 μ‚¬μ΄μ˜ μ •μˆ˜κ°’μ„ 인수둜 전달 κ°€λŠ₯, 기본값은 10진법이닀.
      // 인수λ₯Ό μƒλž΅ν•˜λ©΄ 10μ§„μˆ˜ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•œλ‹€.
      (10).toString(); // -> "10"
      // 2μ§„μˆ˜ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•œλ‹€.
      (16).toString(2); // -> "10000"
      // 8μ§„μˆ˜ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•œλ‹€.
      (16).toString(8); // -> "20"
      // 16μ§„μˆ˜ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•œλ‹€.
      (16).toString(16); // -> "10"
  • Math

    ν”„λ‘œνΌν‹°

    • *.PI : μ›μ£Όμœ¨ PI κ°’ λ°˜ν™˜

    λ©”μ„œλ“œ

    • *.abs(num) : μ „λ‹¬λœ 숫자의 μ ˆλŒ€κ°’ λ°˜ν™˜
    • *.round(float) : μ „λ‹¬λœ 숫자의 μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό λ°˜μ˜¬λ¦Όν•œ μ •μˆ˜ λ°˜ν™˜
    • *.ceil(float) : μ „λ‹¬λœ 숫자의 μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό μ˜¬λ¦Όν•œ μ •μˆ˜ λ°˜ν™˜
    • *.floor(float) : μ „λ‹¬λœ 숫자의 μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό λ‚΄λ¦Όν•œ μ •μˆ˜ λ°˜ν™˜
    • *.sqrt(num) : μ „λ‹¬λœ 숫자의 제곱근 λ°˜ν™˜
    • *.random() : μž„μ˜μ˜ λ‚œμˆ˜ λ°˜ν™˜. 0μ—μ„œ 1 미만의 μ‹€μˆ˜
      Math.random(); // 0μ—μ„œ 1 미만의 랜덀 μ‹€μˆ˜(0.8208720231391746)
      
      /*
      1μ—μ„œ 10 λ²”μœ„μ˜ 랜덀 μ •μˆ˜ 취득
      1) Math.random으둜 0μ—μ„œ 1 미만의 랜덀 μ‹€μˆ˜λ₯Ό κ΅¬ν•œ λ‹€μŒ, 10을 κ³±ν•΄ 0μ—μ„œ 10 미만의
      랜덀 μ‹€μˆ˜λ₯Ό κ΅¬ν•œλ‹€.
      2) 0μ—μ„œ 10 미만의 랜덀 μ‹€μˆ˜μ— 1을 더해 1μ—μ„œ 10 λ²”μœ„μ˜ 랜덀 μ‹€μˆ˜λ₯Ό κ΅¬ν•œλ‹€.
      3) Math.floor둜 1μ—μ„œ 10 λ²”μœ„μ˜ 랜덀 μ‹€μˆ˜μ˜ μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό λ–Όμ–΄ 버린 λ‹€μŒ μ •μˆ˜λ₯Ό λ°˜ν™˜ν•œλ‹€.
      */
      const random = Math.floor((Math.random() * 10) + 1);
      console.log(random); // 1μ—μ„œ 10 λ²”μœ„μ˜ μ •μˆ˜
    • *.pow(base, exponent) : 첫 번째 인수λ₯Ό λ°‘, λ‘λ²ˆμ§Έ 인수λ₯Ό μ§€μˆ˜λ‘œ κ±°λ“­μ œκ³±ν•œ κ²°κ³Ό λ°˜ν™˜
      Math.pow(2, 8);  // -> 256
      Math.pow(2, -1); // -> 0.5
      Math.pow(2);     // -> NaN
      
      // ES7 μ§€μˆ˜ μ—°μ‚°μž
      2 ** 2 ** 2; // -> 16
      Math.pow(Math.pow(2, 2), 2); // -> 16
    • *.max() : 전달받은 인수 쀑 κ°€μž₯ 큰 수λ₯Ό λ°˜ν™˜. μΈμˆ˜κ°€ μ—†μœΌλ©΄ -Infinity λ°˜ν™˜
      Math.max(1); // -> 1
      Math.max(1, 2); // -> 2
      Math.max(1, 2, 3); // -> 3
      Math.max(); // -> -Infinity
      
      // λ°°μ—΄ μš”μ†Œ μ€‘μ—μ„œ μ΅œλŒ€κ°’ 취득
      Math.max.apply(null, [1, 2, 3]); // -> 3
      
      // ES6 μŠ€ν”„λ ˆλ“œ 문법
      Math.max(...[1, 2, 3]); // -> 3
    • *.min() : 전달받은 인수 쀑 κ°€μž₯ μž‘μ€ 수λ₯Ό λ°˜ν™˜. μΈμˆ˜κ°€ μ—†μœΌλ©΄ Infinity λ°˜ν™˜
      Math.min(1); // -> 1
      Math.min(1, 2); // -> 1
      Math.min(1, 2, 3); // -> 1
      Math.min(); // -> Infinity
      
      // λ°°μ—΄ μš”μ†Œ μ€‘μ—μ„œ μ΅œμ†Œκ°’ 취득
      Math.min.apply(null, [1, 2, 3]); // -> 1
      
      // ES6 μŠ€ν”„λ ˆλ“œ 문법
      Math.min(...[1, 2, 3]); // -> 1