2021. 10. 20. 14:41ใHTML + CSS + JS
1.์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด
1๏ธโฃ DOM (๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ) : ์น ๋ฌธ์ ์์ฒด๊ฐ ๊ฐ์ฒด์ด๊ธฐ๋ ํ๊ณ , ์น ๋ฌธ์์ ํฌํจ๋ ์ด๋ฏธ์ง๋ ๋งํฌ , ํ ์คํธ ํ๋ ๋ชจ๋ ๊ฐ์ฒด์ ํด๋นํ๋ค,
2๏ธโฃ ๋ธ๋ผ์ฐ์ ๊ด๋ จ ๋ชจ๋ธ : ์น ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉํ๋ ์ ๋ณด๋ ๊ฐ์ฒด๋ก ๋ํ๋ผ ์ ์๋ค. (history, location, link...)
3๏ธโฃ ๋ด์ฅ ๊ฐ์ฒด : ์น ํ๋ก๊ทธ๋๋ฐ ํ ๋ ์์ฃผ ์ฌ์ฉํ๋ ์์๋ก ์๋ฐ ์คํฌ๋ฆฝํธ ์์ ๋ฏธ๋ฆฌ ๊ฐ์ฒด๋ก ์ ์ ๋์ด ์๋ ๊ฒ์ ๋ด์ฅ๊ฐ์ฒด๋ผ๊ณ ํ๋ค.
2. ๊ฐ์ฒด์ ์ธ์คํด์ค ๋ง๋ค๊ธฐ
์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ฒด๋ ์ฐธ์กฐ ํ์์ผ๋ก ๋ง๋ค์ด์ ์ฌ์ฉํด์ผํ๋ค.
์ฆ ๊ฐ์ฒด ์์ฒด๊ฐ ์๋ ์ธ์คํด์ค์ ํํ๋ก ๋ง๋ค์ด์ ์ฌ์ฉํด์ผํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด๊ฐ ํ์ด๋ผ๋ฉด ๊ทธ ํ์ ๊ธฐ๋ณธ์ผ๋ก ํด์ ๊ณ์ ๊ฐ์ ๋ชจ์์ผ๋ก ์ฐ์ด ๋ด๋ ๊ฒ์ด ์ธ์คํด์ค์ด๋ค.
๊ฐ์ฒด์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค ๋๋ new ๊ฐ์ฒด๋ช ์ด๋ฐ์์ผ๋ก ์ฌ์ฉํ๋ค.
3. ํ๋กํผํฐ์ ๋ฉ์๋
๊ฐ์ฒด์๋ ํ๋กํผํฐ์ ๋ฉ์๋๊ฐ ์กด์ฌํ๋ค.
ํ๋กํผํฐ๋ ๊ฐ์ฒด์ ํน์ง์ด๋ ์์ฑ์ ๋ํ๋ด๊ณ , ๋ฉ์๋๋ ๊ฐ์ฒด์์ ํ ์ ์๋ ๋์์ ํํํ๋ค.
์ธ์คํด์ค๋ ๊ฐ์ฒด์ ํ๋กํผํฐ์ ๋ฉ์๋๋ฅผ ๊ทธ๋๋ก ๋ฌผ๋ ค๋ฐ์์ ๋๊ฐ์ด ์ฌ์ฉํ ์ ์๋ค.
์ธ์คํด์ค๋ช ๋ค์ (.)์ ๋ถ์ฌ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
4. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ด์ฅ๊ฐ์ฒด
1๏ธโฃ Array ๊ฐ์ฒด
Array ๊ฐ์ฒด๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฌ๋ฌ๊ฐ์ง ๋ด์ฅ ๊ฐ์ฒด ์ค์์ ๋ฐฐ์ด์ ๋ค๋ฃฌ๋ค.
var name = new Array();
var name = new Array(4);
var numbers = ["one", "two", "three", "four"]
var numbers = Array("one", "two", "three", "four");
Array ๊ฐ์ฒด ๋ฉ์๋
concat : ๊ธฐ์กด ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๊ฐํด ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ ๋ค.
every : ๋ฐฐ์ด์ ๋ชจ๋ ์์๊ฐ ์ฃผ์ด์ง ํจ์์ ๋ํด ์ฐธ์ด๋ฉด true, ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํํ๋ค.
filter : ๋ฐฐ์ด ์์ ์ค์์ ์ฃผ์ด์ง ํํฐ๋ง ํจ์์ ๋ํด true ์ธ์์๋ง ๊ณจ๋ผ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ ๋ค.
forEach : ๋ฐฐ์ด์ ๋ชจ๋ ์์์ ๋ํด ์ฃผ์ด์ง ํจ์๋ฅผ ์คํํ๋ค.
indexOf : ์ฃผ์ด์ง ๊ฐ๊ณผ ์ผ์นํ๋ ๊ฐ์ด ์๋ ๋ฐฐ์ด ์์์ ์ฒซ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๋๋ค.
join : ๋ฐฐ์ด ์์๋ฅผ ๋ฌธ์์ด๋ก ํฉ์น๋ค. (๊ตฌ๋ถ์ ์ง์ ๊ฐ๋ฅ)
push : ๋ฐฐ์ด์ ๋งจ ๋์์ ์๋ก์ด ์์๋ฅผ ์ถ๊ฐํ ํ ์๋ก์ด length๋ฅผ ๋ฐํํ๋ค.
unshift : ๋ฐฐ์ด์ ์์๋ถ๋ถ์ ์๋ก์ด ์์๋ฅผ ์ถ๊ฐํ๋ค.
pop : ๋ฐฐ์ด์ ๋ง์ง๋ง ์์๋ฅผ ๊บผ๋ด ๊ทธ ๊ฐ์ ๊ฒฐ๊ณผ๋ก ๋ฐํํ๋ค.
shift : ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์๋ฅผ ๊บผ๋ด ๊ทธ ๊ฐ์ ๊ฒฐ๊ณผ๋ก ๋ฐํํ๋ค.
splice : ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๋ค.
slice : ๋ฐฐ์ด์ ํน์ ํ ๋ถ๋ถ๋ง ์๋ผ ๋ธ๋ค.
reverse : ๋ฐฐ์ด์ ๋ฐฐ์น ์์๋ฅผ ์ญ์์ผ๋ก ๋ฐ๊พผ๋ค.
sort : ๋ฐฐ์ด์์๋ฅผ ์ง์ ํ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ๋ ฌํ๋ค.
toString : ๋ฐฐ์ด์์ ์ง์ ํ ๋ถ๋ถ์ ๋ฌธ์์ด๋ก ๋ฐํํ๋ค.
- concat()
concat() ๋ฉ์๋๋ ์๋ก ๋ค๋ฅธ ๋ฐฐ์ด 2๊ฐ๋ฅผ ํฉ์ณ์ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ ๋ค.
- join()
join() ๋ฉ์๋๋ ๋ฐฐ์ด ์์๋ฅผ ์ฐ๊ฒฐํด์ ํ๋์ ๋ฌธ์์ด๋ก ๋ง๋ ๋ค.
์ด๋ ์์ ์ฌ์ด์ ๊ตฌ๋ถ์๋ฅผ ๋ฃ์ ์ ์๋๋ฐ ๋ฐ๋ก ์ง์ ํ์ง ์์ผ๋ฉด , ๋ก ๊ตฌ๋ถ๋๋ค.
- push() , unshift()
push() ๋ฉ์๋๋ ๋ฐฐ์ด ๋งจ ๋์ ์์๋ฅผ ์ถ๊ฐํ๊ณ , unshift() ๋ฉ์๋๋ ๋ฐฐ์ด์ ๋งจ ์์ ์์๋ฅผ ์ถ๊ฐํ๋ค.
์์๋ฅผ ์ถ๊ฐํ๊ณ ๋๋ฉด ์๋ ๋ฐฐ์ด ๋ฐ๋๋ค๋ ๊ฒ ์ฃผ์ํ๊ธฐ
- pop(), shift()
pop() ๋ฉ์๋๋ ๋ฐฐ์ด์์ ๋ค์ ์๋ ์์๋ฅผ ๊บผ๋ผ ๋ ์ฌ์ฉํ๊ณ , shift() ๋ฉ์๋๋ ์์ ์๋ ์์๋ฅผ ๊บผ๋ผ ๋ ์ฌ์ฉํ๋ค.
- splice()
splice() ๋ฉ์๋๋ ๊ดํธ ์์ ๋ค์ด ์๋ ์ธ์์ ๋ฐ๋ผ ๋ฐฐ์ด ์์๋ฅผ ์ญ์ ํ๊ฑฐ๋ ์๋ก์ด ์์๋ฅผ ์ถ๊ฐํ๋ค,
- slice()
slice() ๋ฉ์๋๋ ๊ธฐ์กด ๋ฐฐ์ด์ ๋ฐ๊พธ์ง ์์ผ๋ฉด์ ์์๋ฅผ ๊บผ๋ผ ์ ์๋ค.
-> ์ฒซ๋ฒ์งธ ์ธ์๋ ๋ฐฐ์ด์ ์์ ์ธ๋ฑ์ค์ด๊ณ , ๋๋ฒ์งธ ์ธ์๋ ๋ ์ธ๋ฑ์ค์ ๋ฐ๋ก ์ง์ ์ธ๋ฑ์ค๋ฅผ ๊ฐ๋ฅดํจ๋ค.
โ splice์ slice์ ์ฐจ์ด์
slice() ๋ฉ์๋๋ ๊ธฐ์กด ๋ฐฐ์ด์ ์ํฅ์ ์ฃผ์ง ์์ง๋ง, splice() ๋ฉ์๋๋ ์์๋ฅผ ์ถ๊ฐ, ์ญ์ ํ๋ฉด ๊ธฐ์กด ๋ฐฐ์ด ์์ฒด๊ฐ ์์ ๋๋ค.
2๏ธโฃ Date ๊ฐ์ฒด
Date ๊ฐ์ฒด๋ ๋ ์ง์ ์๊ฐ ์ ๋ณด๋ฅผ ๋ํ๋ผ ์ ์๋ค.
new Date();
- ๋ ์ง ์ ๋ ฅ ๋ฐฉ์
YYYY-MM-DD
YYYY-MM-DDTHH (T : ์๊ฐ์ ๋ํ๋ผ ๋ ์ฌ์ฉ)
MM/DD/YYYY
- Date ๊ฐ์ฒด์ ๋ฉ์๋
๋ ์ง, ์๊ฐ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ
getFullYear()
getMonth()
getDate()
getDay()
getTime()
getHours()
getMinutes()
getSeconds()
getMillseconds()
๋ ์ง, ์๊ฐ ์ ๋ณด ์ค์ ํ๊ธฐ
setFullYear()
setMonth()
setDate()
setDay()
setTime()
setHours()
setMinutes()
setSeconds()
setMillseconds()
๋ ์ง, ์๊ฐ ํ์ ๋ฐ๊พธ๊ธฐ
toLocaleString() : ํ์ฌ ๋ ์ง์ ์๊ฐ์ ํ์ง ์๊ฐ์ผ๋ก ํ์ํ๋ค.
toString()
* ์ฐ์ต๋ฌธ์
๋๋ ์ฑ ์ ์ฐ์์ผ๋ก ์ฝ๊ณ ์๋๊ฐ?
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>๋
์ ์ฑ๋ฆฐ์ง</title>
<style>
#container{
margin:50px auto;
width:300px;
height:300px;
border-radius:50%;
border:2px double #222;
background-color:#d8f0fc;
text-align: center;
}
h1 {
margin-top:80px;
}
.accent {
font-size:1.8em;
font-weight:bold;
color:red;
}
</style>
</head>
<body>
<div id="container">
<h1>์ฑ
์ฝ๊ธฐ</h1>
<p><span class="accent" id="result"></span>์ผ ์ฐ์์ผ๋ก <br> ์ฑ
์ฝ๊ธฐ๋ฅผ ๋ฌ์ฑํ๊ตฐ์.</p>
<p>์ถํํฉ๋๋ค!</p>
</div>
<script>
var now = new Date("2021-10-20");
var firstDay = new Date("2021-10-01");
var tonow = now.getTime();
var tofirst = firstDay.getTime();
var passedTime = tonow- tofirst;
passedTime = Math.round(passedTime/ (1000*60*60*24));
document.querySelector('#result').innerText = passedTime;
</script>
</body>
</html>
Date ๊ฐ์ฒด๋ก ์ค๋ ๋ ์ง๋ฅผ ์์๋ด๊ณ , getTime()์ ํตํด์ ์๊ฐ์ ์์๋.
๊ทธ๋ฆฌ๊ณ ์ค๋๊ณผ ์์์ผ์ ์๊ฐ์ ๋นผ๊ณ ๋๋ฉด ๊ทธ ๊ฐ์ ๋ฐ๋ฆฌ์ด๋ก ๊ณ์ฐ๋๋๋ฐ
์ด๋ฅผ (1000 *60 * 60 * 24)๋ก ๋๋ ์ฃผ๋ฉด ์ผ์๋ก ๋ํ๋ผ ์ ์๋ค,
3๏ธโฃ Math ๊ฐ์ฒด
Math๊ฐ์ฒด๋ ๋ฐ๋ก ์ธ์คํด์ค๋ฅผ ์์ฑํ์ง ์๋๋ค๋ ๊ฒ์ด ํน์ง์ด๋ค.
Math.ํ๋กํผํฐ๋ช
Math.๋ฉ์๋๋ช
- Math ๊ฐ์ฒด์ ํ๋กํผํฐ
E
PI
SQRT2
SQRT1_2
LN2
LN10
LOG2E
LOG10E
-Math ๊ฐ์ฒด์ ๋ฉ์๋
abs() : ์ ๋๊ฐ ๋ฐํ
acos() : ์ํฌ์ฝ์ฌ์ธ ๊ฐ ๋ฐํ
asin() : ์ํฌ ์ฌ์ธ ๊ฐ ๋ฐํ
atan() : ์ํฌํ์ ํธ ๊ฐ ๋ฐํ
atan2() : ์ํฌ ํ์ ํธ ๊ฐ ๋ฐํ
ceil() : ๋งค๊ฐ๋ณ์ ์์์ ์ดํ ๋ถ๋ถ์ ์ฌ๋ฆฐ๋ค.
cos() : ์ฝ์ฌ์ธ ๊ฐ ๋ฐํ
exp() : ์ง์ ํจ์๋ฅผ ๋ํ๋
floor() : ๋งค๊ฐ๋ณ์์ ์์์ ์ดํ ๋ถ๋ถ์ ๋ฒ๋ฆฐ๋ค.
log() : ๋งค๊ฐ๋ณ์์ ๋ํ ๋ก๊ทธ ๊ฐ์ ๋ฐํ
max() : ๋งค๊ฐ๋ณ์ ์ค ์ต๋๊ฐ ๋ฐํ
min() : ๋งค๊ฐ๋ณ์ ์ค ์ต์๊ฐ ๋ฐํ
pow() : ๋งค๊ฐ๋ณ์ ์ง์๊ฐ ๋ฐํ
random() : 0๊ณผ 1 ์ฌ์ด ๋ฌด์์ ์ ๋ฐํ
round() : ๋งค๊ฐ๋ณ์์ ์์์ ์ดํ ๋ถ๋ถ์ ๋ฐ์ฌ๋ฆผ
sin() : ์ฌ์ธ ๊ฐ์ ๋ฐํ
sqrt() : ๋งค๊ฐ๋ณ์์ ๋ํ ์ ๊ณฑ๊ทผ์ ๋ฐํ
tan() : ํ์ ํธ๊ฐ ๋ฐํ
* ์ฐ์ต๋ฌธ์ 2
๋น์ฒจ์๋ฅผ ๋ฝ๋ ํ๋ก๊ทธ๋จ
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>๋น์ฒจ์ ๋ฐํ</title>
<style>
h1 {
border:1px solid black;
padding:10px;
text-align:center;
background:#eee;
}
</style>
</head>
<body>
<h1>๋น์ฒจ์ ๋ฐํ</h1>
<script>
var num = prompt("์ ์ฒด ์๋ชจ์ ์ :" , "");
var pick = Math.floor((Math.random() * num) + 1);
document.write("์ ์ฒด ์๋ชจ์ ์ : " + num + "๋ช
<br>");
document.write("๋น์ฒจ์ : " + pick + "๋ฒ ");
</script>
</body>
</html>
Math.random()์ 100์ ๊ณฑํ๊ณ +1 ํด์ฃผ๋ฉด 1~100 ์ฌ์ด์ ๊ฐ ํ์ธ ๊ฐ๋ฅ
'HTML + CSS + JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
14-3. JS ๊ฐ์ฒด ์ฐ์ต๋ฌธ์ 1, 2 (0) | 2021.10.20 |
---|---|
14-2. JS ๋ธ๋ผ์ฐ์ ์ ๊ด๋ จ๋ ๊ฐ์ฒด (window๊ฐ์ฒด, navigator ๊ฐ์ฒด, history ๊ฐ์ฒด, location ๊ฐ์ฒด, screen ๊ฐ์ฒด) (0) | 2021.10.20 |
13-4. JS ํจ์ ์ฐ์ต๋ฌธ์ (0) | 2021.10.19 |
13-3. JS ํจ์ (์ต๋ช ํจ์, ํ์ดํํจ์, ์ด๋ฒคํธ, DOM ) (0) | 2021.10.19 |
13-2. JS ํจ์ (let, const, ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํจ์) (0) | 2021.10.19 |