πŸ“Œ 29μž₯ Math

경이·2022λ…„ 4μ›” 28일
0


🍨 29.1 Math ν”„λ‘œνΌν‹°

βœ” 29.1.1 Math.PI

μ›μ£Όμœ¨ PI 값을 λ°˜ν™˜ν•œλ‹€.

Math.PI; // -> 3.141592653589793

🍨 29.2 Math λ©”μ„œλ“œ

βœ” 29.2.1 Math.abs

Math.abs λ©”μ„œλ“œλŠ” 인수둜 μ „λ‹¬λœ 숫자의 μ ˆλŒ€κ°’μ„ λ°˜ν™˜ν•œλ‹€.

Math.abs(-1);        // -> 1
Math.abs('-1');      // -> 1
Math.abs('');        // -> 0
Math.abs([]);        // -> 0
Math.abs(null);      // -> 0
Math.abs(undefined); // -> NaN
Math.abs({});        // -> NaN
Math.abs('string');  // -> NaN
Math.abs();          // -> NaN

βœ” 29.2.2 Math.round

Math.round λ©”μ„œλ“œλŠ” 인수둜 μ „λ‹¬λœ 숫자의 μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό λ°˜μ˜¬λ¦Όν•œ μ •μˆ˜λ₯Ό λ°˜ν™˜ν•œλ‹€.

Math.round(1.4);  // -> 1
Math.round(1.6);  // -> 2
Math.round(-1.4); // -> -1
Math.round(-1.6); // -> -2
Math.round(1);    // -> 1
Math.round();     // -> NaN

βœ” 29.2.3 Math.ceil

Math.ceil λ©”μ„œλ“œλŠ” 인수둜 μ „λ‹¬λœ 숫자의 μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό μ˜¬λ¦Όν•œ μ •μˆ˜λ₯Ό λ°˜ν™˜ν•œλ‹€.

Math.ceil(1.4);  // -> 2
Math.ceil(1.6);  // -> 2
Math.ceil(-1.4); // -> -1
Math.ceil(-1.6); // -> -1
Math.ceil(1);    // -> 1
Math.ceil();     // -> NaN

βœ” 29.2.4 Math.floor

Math.floor λ©”μ„œλ“œλŠ” 인수둜 μ „λ‹¬λœ 숫자의 μ†Œμˆ˜μ  μ΄ν•˜λ₯Ό λ‚΄λ¦Όν•œ μ •μˆ˜λ₯Ό λ°˜ν™˜ν•œλ‹€.

Math.floor(1.9);  // -> 1
Math.floor(9.1);  // -> 9
Math.floor(-1.9); // -> -2
Math.floor(-9.1); // -> -10
Math.floor(1);    // -> 1
Math.floor();     // -> NaN

βœ” 29.2.5 Math.sqrt

Math.sqrt λ©”μ„œλ“œλŠ” 인수둜 μ „λ‹¬λœ 숫자의 μ œκ³±κ·Όμ„ λ°˜ν™˜ν•œλ‹€.

Math.sqrt(9);  // -> 3
Math.sqrt(-9); // -> NaN
Math.sqrt(2);  // -> 1.414213562373095
Math.sqrt(1);  // -> 1
Math.sqrt(0);  // -> 0
Math.sqrt();   // -> NaN

βœ” 29.2.6 Math.ramdom

Math.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 λ²”μœ„μ˜ μ •μˆ˜

βœ” 29.2.7 Math.pow

Math.pow λ©”μ„œλ“œλŠ” 첫 번째 인수λ₯Ό λ°‘(base)으둜, 두 번째 인수λ₯Ό μ§€μˆ˜(exponent)둜 κ±°λ“­μ œκ³±ν•œ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•œλ‹€.

Math.pow(2, 8);  // -> 256
Math.pow(2, -1); // -> 0.5
Math.pow(2);     // -> NaN

ES7μ—μ„œ λ„μž…λœ μ§€μˆ˜ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜λ©΄ 가독성이 더 μ’‹λ‹€.

// ES7 μ§€μˆ˜ μ—°μ‚°μž
2 ** 2 ** 2; // -> 16
Math.pow(Math.pow(2, 2), 2); // -> 16

βœ” 29.2.7 Math.max

Math.max λ©”μ„œλ“œλŠ” 전달받은 인수 μ€‘μ—μ„œ κ°€μž₯ 큰 수λ₯Ό λ°˜ν™˜ν•œλ‹€. μΈμˆ˜κ°€ μ „λ‹¬λ˜μ§€ μ•ŠμœΌλ©΄ -Infinityλ₯Ό λ°˜ν™˜ν•œλ‹€.

Math.max(1); // -> 1
Math.max(1, 2); // -> 2
Math.max(1, 2, 3); // -> 3
Math.max(); // -> -Infinity

배열을 인수둜 전달받아 λ°°μ—΄μ˜ μš”μ†Œμ€‘μ—μ„œ μ΅œλŒ€κ°’μ„ κ΅¬ν•˜λ €λ©΄ Function.prototype.apply λ©”μ„œλ“œ λ˜λŠ” μŠ€ν”„λ ˆλ“œ 문법을 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

// λ°°μ—΄ μš”μ†Œ μ€‘μ—μ„œ μ΅œλŒ€κ°’ 취득
Math.max.apply(null, [1, 2, 3]); // -> 3

// ES6 μŠ€ν”„λ ˆλ“œ 문법
Math.max(...[1, 2, 3]); // -> 3

βœ” 29.2.7 Math.min

Math.min λ©”μ„œλ“œλŠ” 전달받은 인수 μ€‘μ—μ„œ κ°€μž₯ μž‘μ€ 수λ₯Ό λ°˜ν™˜ν•œλ‹€. μΈμˆ˜κ°€ μ „λ‹¬λ˜μ§€ μ•ŠμœΌλ©΄ Infinityλ₯Ό λ°˜ν™˜ν•œλ‹€.

Math.min(1); // -> 1
Math.min(1, 2); // -> 1
Math.min(1, 2, 3); // -> 1
Math.min(); // -> Infinity

배열을 인수둜 전달받아 λ°°μ—΄μ˜ μš”μ†Œμ€‘μ—μ„œ μ΅œμ†Œκ°’μ„ κ΅¬ν•˜λ €λ©΄ Function.prototype.apply λ©”μ„œλ“œ λ˜λŠ” μŠ€ν”„λ ˆλ“œ 문법을 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

// λ°°μ—΄ μš”μ†Œ μ€‘μ—μ„œ μ΅œμ†Œκ°’ 취득
Math.min.apply(null, [1, 2, 3]); // -> 1

// ES6 μŠ€ν”„λ ˆλ“œ 문법
Math.min(...[1, 2, 3]); // -> 1
profile
μ΄μ‚¬μ€‘μž…λ‹ˆλ‹€!🌟https://velog.io/@devkyoung2

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보