JavaScript์ Math ๊ฐ์ฒด๋ ์ํ์ ๊ณ์ฐ์ ์ํ ๋ค์ํ ๋ฉ์๋์ ์์๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ๊ฐ์ฒด๋ ์ซ์ ๊ณ์ฐ, ์ ๊ณฑ, ๋ฐ์ฌ๋ฆผ, ์ผ๊ฐํจ์ ๋ฑ๊ณผ ๊ฐ์ ์ํ์ ์ฐ์ฐ์ ์ฒ๋ฆฌํ ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ์ด๋ฒ ๊ธ์์๋ Math ๊ฐ์ฒด์ ์ฃผ์ ๋ฉ์๋์ ๊ทธ ์ฌ์ฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค.
JavaScript Math ๊ฐ์ฒด๋?
JavaScript์์ Math
๊ฐ์ฒด๋ ์ ์ญ ๊ฐ์ฒด๋ก, ๋ณ๋์ ์ธ์คํด์ค ์์ฑ ์์ด ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ํ ๊ด๋ จ ํจ์๋ค์ ๋ชจ๋ Math
๊ฐ์ฒด ๋ด์์ ์ ๊ณต๋๋ฉฐ, ์ด๋ฅผ ํตํด ๋ค์ํ ์ํ์ ์ฐ์ฐ์ ์ฝ๊ฒ ์ํํ ์ ์์ต๋๋ค.
Math ๊ฐ์ฒด์ ๊ธฐ๋ณธ ํน์ง
Math
๋ ๊ฐ์ฒด์ง๋ง, ์ธ์คํด์ค๋ฅผ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค.- ๋๋ถ๋ถ์ ๋ฉ์๋๋ ์ ์ (static) ๋ฉ์๋๋ก ์ ๊ณต๋ฉ๋๋ค.
- ๋ฉ์๋์ ์์๋ฅผ ํตํด ๋ค์ํ ์ํ ์ฐ์ฐ์ด ๊ฐ๋ฅํฉ๋๋ค.
Math ๊ฐ์ฒด์ ์ฃผ์ ๋ฉ์๋
JavaScript์์ Math
๊ฐ์ฒด๋ ์ฌ๋ฌ ์ ์ฉํ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด์ ๊ฐ ๋ฉ์๋๋ฅผ ์ดํด๋ณด๊ณ , ๊ทธ ์ฌ์ฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค.
1. Math.abs()
- ์ ๋๊ฐ ๊ตฌํ๊ธฐ
Math.abs()
๋ฉ์๋๋ ์ฃผ์ด์ง ์ซ์์ ์ ๋๊ฐ์ ๋ฐํํฉ๋๋ค. ์ฆ, ์์๋ฅผ ์์๋ก ๋ณํํ ๋ ์ ์ฉํฉ๋๋ค.
// ์ ๋๊ฐ ๊ตฌํ๊ธฐ
console.log(Math.abs(-10)); // 10
console.log(Math.abs(5)); // 5
2. Math.round()
- ๋ฐ์ฌ๋ฆผ
Math.round()
๋ฉ์๋๋ ์ฃผ์ด์ง ์ซ์๋ฅผ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ก ๋ฐ์ฌ๋ฆผํฉ๋๋ค.
// ๋ฐ์ฌ๋ฆผ
console.log(Math.round(4.7)); // 5
console.log(Math.round(4.4)); // 4
์์์ ์ ๊ธฐ์ค์ผ๋ก 0.5 ์ด์์ผ ๋๋ ์ฌ๋ฆผ, 0.5 ๋ฏธ๋ง์ผ ๋๋ ๋ด๋ฆผ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
3. Math.ceil()
- ์ฌ๋ฆผ
Math.ceil()
๋ฉ์๋๋ ์์์ ์ดํ๋ฅผ ๋ฌด์กฐ๊ฑด ์ฌ๋ฆผํ์ฌ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ฅผ ๋ฐํํฉ๋๋ค.
// ์ฌ๋ฆผ
console.log(Math.ceil(4.1)); // 5
console.log(Math.ceil(7.9)); // 8
์ด ๋ฉ์๋๋ ํญ์ ์์์ ์ ์ฌ๋ฆฌ๊ธฐ ๋๋ฌธ์, ๊ฐ์ด ์ผ๋ง๋ ์ง ๋ฌด์กฐ๊ฑด ์ ์๋ก ์ฌ๋ฆผํฉ๋๋ค.
4. Math.floor()
- ๋ด๋ฆผ
Math.floor()
๋ฉ์๋๋ ์์์ ์ดํ๋ฅผ ๋ฒ๋ฆฌ๊ณ , ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ฅผ ๋ฐํํฉ๋๋ค.
// ๋ด๋ฆผ
console.log(Math.floor(4.9)); // 4
console.log(Math.floor(7.1)); // 7
์ด ๋ฉ์๋๋ ์ฃผ์ด์ง ์ซ์์ ์์์ ์ ๋ฒ๋ฆฌ๊ณ ์ ์๋ง ๋จ๊น๋๋ค.
5. Math.max()
์ Math.min()
- ์ต๋๊ฐ๊ณผ ์ต์๊ฐ ๊ตฌํ๊ธฐ
Math.max()
์ Math.min()
๋ฉ์๋๋ ์ฃผ์ด์ง ์ซ์๋ค ์ค์์ ๊ฐ๊ฐ ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ๋ฐํํฉ๋๋ค.
// ์ต๋๊ฐ ๊ตฌํ๊ธฐ
console.log(Math.max(1, 5, 3, 9, 2)); // 9
// ์ต์๊ฐ ๊ตฌํ๊ธฐ
console.log(Math.min(1, 5, 3, 9, 2)); // 1
์ด ๋ฉ์๋๋ ์ฌ๋ฌ ์ซ์ ์ค ๊ฐ์ฅ ํฐ ๊ฐ๊ณผ ์์ ๊ฐ์ ์ฝ๊ฒ ์ฐพ์ ์ ์๊ฒ ํด์ค๋๋ค.
6. Math.pow()
- ์ ๊ณฑ ๊ตฌํ๊ธฐ
Math.pow()
๋ฉ์๋๋ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ฅผ ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋งํผ ์ ๊ณฑํ ๊ฐ์ ๋ฐํํฉ๋๋ค.
// ์ ๊ณฑ ๊ณ์ฐ
console.log(Math.pow(2, 3)); // 8 (2^3)
console.log(Math.pow(5, 2)); // 25 (5^2)
์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋จํ ์ ๊ณฑ ๊ณ์ฐ์ ํ ์ ์์ต๋๋ค.
7. Math.sqrt()
- ์ ๊ณฑ๊ทผ ๊ตฌํ๊ธฐ
Math.sqrt()
๋ฉ์๋๋ ์ฃผ์ด์ง ์ซ์์ ์ ๊ณฑ๊ทผ์ ๋ฐํํฉ๋๋ค.
// ์ ๊ณฑ๊ทผ ๊ณ์ฐ
console.log(Math.sqrt(16)); // 4
console.log(Math.sqrt(25)); // 5
์ ๊ณฑ๊ทผ์ ๊ตฌํด์ผ ํ๋ ๊ฒฝ์ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
8. Math.random()
- ๋์ ์์ฑํ๊ธฐ
Math.random()
๋ฉ์๋๋ 0(ํฌํจ)๊ณผ 1(์ ์ธ) ์ฌ์ด์ ๋์๋ฅผ ๋ฐํํฉ๋๋ค.
// ๋์ ์์ฑ
console.log(Math.random()); // 0๊ณผ 1 ์ฌ์ด์ ๋์
์ด ๋ฉ์๋๋ฅผ ํตํด ๋์๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ, ์ํ๋ ๋ฒ์์ ๋์๋ฅผ ๋ง๋ค๋ ค๋ฉด ๊ณฑ์ ๊ณผ ๋ํ๊ธฐ๋ฅผ ํ์ฉํด์ผ ํฉ๋๋ค.
// 0๊ณผ 100 ์ฌ์ด์ ๋์ ์์ฑ
const randomNum = Math.random() * 100;
console.log(randomNum);
9. Math.trunc()
- ์์์ ์ดํ ๋ฒ๋ฆฌ๊ธฐ
Math.trunc()
๋ฉ์๋๋ ์์์ ์ดํ๋ฅผ ๋ฌด์ํ๊ณ , ์ ์ ๋ถ๋ถ๋ง ๋ฐํํฉ๋๋ค.
// ์์์ ์ดํ ๋ฒ๋ฆฌ๊ธฐ
console.log(Math.trunc(4.9)); // 4
console.log(Math.trunc(-5.1)); // -5
์ด ๋ฉ์๋๋ ์์์ ์ ์ ๊ฑฐํ๊ณ ์ ์๋ง ํ์ํ ๊ฒฝ์ฐ ์ ์ฉํฉ๋๋ค.
Math ๊ฐ์ฒด์ ์ฃผ์ ์์
JavaScript์ Math
๊ฐ์ฒด๋ ์์ฃผ ์ฌ์ฉ๋๋ ์ํ ์์๋ ์ ๊ณตํฉ๋๋ค.
Math.PI
: ์์ฃผ์จ(ฯ)์ ๋ํ๋ ๋๋ค (์ฝ 3.14159).Math.E
: ์์ฐ๋ก๊ทธ์ ๋ฐ์(์ฝ 2.718)๋ฅผ ๋ํ๋ ๋๋ค.Math.LN2
: 2์ ์์ฐ๋ก๊ทธ ๊ฐ์ ๋ํ๋ ๋๋ค (์ฝ 0.693).Math.LN10
: 10์ ์์ฐ๋ก๊ทธ ๊ฐ์ ๋ํ๋ ๋๋ค (์ฝ 2.302).Math.SQRT2
: 2์ ์ ๊ณฑ๊ทผ์ ๋ํ๋ ๋๋ค (์ฝ 1.414).
// Math ์์ ์ฌ์ฉ
console.log(Math.PI); // 3.141592653589793
console.log(Math.E); // 2.718281828459045
๊ฒฐ๋ก
JavaScript์ Math ๊ฐ์ฒด๋ ๋ค์ํ ์ํ์ ์ฐ์ฐ์ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํฉ๋๋ค. ์ ๋๊ฐ, ๋ฐ์ฌ๋ฆผ, ์ ๊ณฑ๊ทผ, ๋์ ์์ฑ ๋ฑ ์ํ์ ์์
์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ, ์์์ ํจ๊ป ๋์ฑ ์ ๊ตํ ๊ณ์ฐ์ด ๊ฐ๋ฅํฉ๋๋ค. Math
๊ฐ์ฒด์ ๋ค์ํ ๋ฉ์๋๋ฅผ ํ์ฉํด ๋ณต์กํ ์ํ ์ฐ์ฐ์ ์์ฝ๊ฒ ์ฒ๋ฆฌํด๋ณด์ธ์!
๋๊ธ ์ฐ๊ธฐ