๐ JavaScript
๐ฅ๏ธ Math ๊ฐ์ฒด
์ค๋์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฅ ๊ฐ์ฒด์ธ ์ํ๊ฐ์ฒด(Math Object)์ ๋ํด ์์๋ณผ๊ฒ์.
โ
๋ํ๊ธฐ, ๊ณฑํ๊ธฐ, ๋๋๊ธฐ ๋ฑ์ ์ฐ์ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ ๊ณ์ฐํ ์ ์์ง๋ง,
์ต๋๊ฐ, ์ต์๊ฐ, ๋ฐ์ฌ๋ฆผ ๋ฑ์ Math ๊ฐ์ฒด์ ํฌํจ๋ ์ํ ๋ฉ์๋๋ฅผ ์ด์ฉํด์ ์ฒ๋ฆฌํด ์ค ์ ์์ต๋๋ค.
โ 1. Math ๊ฐ์ฒด์ ๋ฉ์๋ ํ ๋์ ๋ณด๊ธฐ
โ
์ข
๋ฅ
|
๊ธฐ๋ฅ
|
Math.abs(์ซ์)
|
์ ๋๊ฐ ๋ฐํ
|
Math.max(์ซ์1, ์ซ์2, ์ซ์3, ์ซ์4)
|
์ซ์ ์ค ๊ฐ์ฅ ํฐ ๊ฐ ๋ฐํ
|
Math.min(์ซ์1, ์ซ์2, ์ซ์3, ์ซ์4)
|
์ซ์ ์ค ๊ฐ์ฅ ์์ ๊ฐ ๋ฐํ
|
Math.pow(์ซ์, ์ ๊ณฑ๊ฐ)
|
์ซ์์ ๊ฑฐ๋ญ์ ๊ณฑ๊ฐ ๋ฐํ
|
Math.random()
|
0~1 ์ฌ์ด์ ๋์ ๋ฐํ
(์ดํด๊ฐ ์ด๋ ค์ธ ์ ์์ผ๋ฏ๋ก ์๋ ์ค๋ช
ํ ๊ฒ์)
|
Math.round(์ซ์)
|
์์์ ์ฒซ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผํ์ฌ ์ ์ ๋ฐํ
|
Math.ceil(์ซ์)
|
์์์ ์ฒซ์งธ ์๋ฆฌ์์ ๋ฌด์กฐ๊ฑด ์ฌ๋ฆผํ์ฌ ์ ์ ๋ฐํ
|
Math.floor(์ซ์)
|
์์์ ์ฒซ์งธ ์๋ฆฌ์์ ๋ฌด์กฐ๊ฑด ๋ด๋ฆผํ์ฌ ์ ์ ๋ฐํ
|
Math.sqrt(์ซ์)
|
์ซ์์ ์ ๊ณฑ๊ทผ๊ฐ ๋ฐํ
|
Math.PI
|
์์ฃผ์จ ์์ 3.14๋ฅผ ๋ฐํ
|
โ
[ ์์ ]
<script>
let num = 2.1234;
let maxNum = Math.max(10,5,8,30), //30
minNum = Math.min(10,5,8,30), //5
roundNum = Math.round(num), //2
floorNum = Math.floor(num), //2
ceilNum = Math.ceil(num), //3
rndNum = Math.random(), //0~1
piNum = Math.PI; // 3.14
Math.floor(Math.random()*31); //0๋ถํฐ 30๊น์ง ์ ์๋ก ๋์๋ฅผ ๋ฐ์ํ๋ค.
Math.floor(Math.random()*31)+120; //120๋ถํฐ 150๊น์ง ์ ์๋ก ๋์๋ฅผ ๋ฐ์ํ๋ค.
</script>
์ถ์ฒ: (์ด์ง์คํผ๋ธ๋ฆฌ์ฑ) ์๋ฐ์คํฌ๋ฆฝํธ + ์ ์ด์ฟผ๋ฆฌ ์ ๋ฌธ( p.95)
1-1. ์ต๋๊ฐ
Math.max()
<body>
<script>
// ๋ ์ ์ค์์ ์ต๋๊ฐ
let maxNum = Math.max(10,5,8,30);
document.write(maxNum); // 30
</script>
</body>
1-2. ์ต์๊ฐ
Math.min()
<body>
<script>
// ๋ ์ ์ค์์ ์ต์๊ฐ
let minNum = Math.min(10,5,8,30);
document.write(minNum); // 5
</script>
</body>
1-3. ๋ฐ์ฌ๋ฆผ (์์์ ์ฒซ์งธ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผํ์ฌ ์ ์ ๋ฐํ)
Math.round()
<body>
<script>
// ์์์ ์ฒซ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผํ์ฌ ์ ์ ๋ฐํ
let num = 2.1234
let roundNum = Math.round(num);
document.write(roundNum); // 2
</script>
</body>
1-4. ๋ด๋ฆผ (์์์ ์ฒซ์งธ์๋ฆฌ์์ ๋ฌด์กฐ๊ฑด ๋ด๋ฆผํ์ฌ ์ ์ ๋ฐํ)
Math.floor()
<body>
<script>
// ์์์ ์ฒซ์งธ ์๋ฆฌ์์ ๋ด๋ฆผํ์ฌ ์ ์ ๋ฐํ
num = 2.1234
let floorNum = Math.floor(num);
document.write(floorNum); // 2
</script>
</body>
1-5. ์ฌ๋ฆผ (์์์ ์ฒซ์งธ์๋ฆฌ์์ ๋ฌด์กฐ๊ฑด ์ฌ๋ฆผํ์ฌ ์ ์ ๋ฐํ)
Math.ceil()
<body>
<script>
// ์์์ ์ฒซ์งธ ์๋ฆฌ์์ ์ฌ๋ฆผํ์ฌ ์ ์ ๋ฐํ
num = 2.1234
let ceilNum = Math.ceil(num);
document.write(ceilNum); // 3
</script>
</body>
1-6. ์ ๋๊ฐ
Math.abs()
<body>
<script>
// ์ซ์์ ์ ๋๊ฐ ๋ฐํ
num = -2
let absNum = Math.abs(num);
document.write(absNum); // 2
</script>
</body>
1-7. ๊ฑฐ๋ญ์ ๊ณฑ๊ฐ
Math.pow(์ซ์, ์ ๊ณฑ๊ฐ)
<body>
<script>
// ์ซ์์ ๊ฑฐ๋ญ์ ๊ณฑ๊ฐ ๋ฐํ
num = 2
let powNum = Math.pow(num, 3);
document.write(powNum); // 8
</script>
</body>
โ 2. ๋์ ์์ฑ (๋๋คํ ์ซ์ ์์ฑํ๊ธฐ)
2-1. ๋์๋?
์์ธกํ ์ ์๋ ๊ฐ์ด๋ ๋ป์ผ๋ก ๋ฒ์๋ฅผ ์ง์ ํ๋ฉด ์์ฑ๋๋ ๋๋คํ ์ซ์๋ฅผ ๋งํด์.
์๋ฐ์คํฌ๋ฆฝํธ์์๋ Math.random() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ๋์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด 0๋ถํฐ 1์ฌ์ด์ ์ค์๊ฐ ๋๋คํ๊ฒ ๋ฐํ๋ฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์์ ๋ฌ๋ฆฌ 0๊ณผ 1 ์ฌ์ด๊ฐ ์๋, ์์๋ก ์ง์ ํ ์ซ์์ ๊ตฌ๊ฐ์์ ๋์๋ฅผ ์ ์๋ก ๋ฐํ ๋ฐ์ผ๋ ค๋ฉด ์ด๋ป๊ฒ ํ ๊น์?
2-2. Math.random()
1) 0๋ถํฐ 1 ์ฌ์ด์ ๋๋คํ ์ค์ ์์ฑ
Math.random(); // 0๋ถํฐ 1 ์ฌ์ด์ ์ค์ ๋๋ค ์์ฑ
2) 0๋ถํฐ 10๊น์ง์ ๋๋คํ ์ค์ ์์ฑํ๊ธฐ
Math.random()*10; // 0๋ถํฐ 10๊น์ง ์ค์๋ก ๋์๋ฅผ ๋ฐํ
3) 0๋ถํฐ 10๊น์ง์ ๋๋คํ ์ ์ ์์ฑํ๊ธฐ
๋๋คํ ์ ์๋ฅผ ์์ฑํ๋ ค๋ฉด Math.floor() ๋ฉ์๋๋ฅผ ํจ๊ป ์ด์ฉํด์ค์ผ ํฉ๋๋ค.
floor() ๋ฉ์๋๋ ๊ฐ์ ๋ด๋ฆฌ๊ธฐ ๋๋ฌธ์ 0๋ถํฐ 10์ฌ์ด์ ๋ฒ์๋ฅผ ์ง์ ํ๊ณ ์ถ๋ค๋ฉด 11๊น์ง ์ค์ ์ ํด ์ค์ผ ํฉ๋๋ค.
Math.floor(Math.random()*11); // 0๋ถํฐ 10๊น์ง ๋๋คํ ์ ์ ์์ฑ
2-3. (์์ฉ) ์ํ๋ ๊ตฌ๊ฐ์์ ์ ์๋ก ๋์ ์์ฑํ๊ธฐ
Math.floor(Math.random()*(์ต๋๊ฐ-์ต์๊ฐ+1))+์ต์๊ฐ;
<body>
<script>
Math.floor(Math.random()*31); //0๋ถํฐ 30๊น์ง ์ ์๋ก ๋์ ๋ฐ์
Math.floor(Math.random()*31)+120; // 120๋ถํฐ 150๊น์ง ์ ์๋ก ๋์ ๋ฐ์
</script>
</body>