๐ FrontEnd/JavaScript
JavaScript ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด - ๊ฐ์ฒด
m-ur-phy
2022. 5. 30. 20:06
์์ํ๋ฉด์
์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด๋ฅผ ๊ณต๋ถํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด๋ฅผ ์์ ์ ํจ๊ป ๊ณต๋ถํฉ๋๋ค.
1. ๊ฐ์ฒด
(1) ๊ฐ์ฒด๋?
- ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ์ฒด(Object) ๊ธฐ๋ฐ ์ธ์ด์ ๋๋ค. ๊ฐ์ฒด๋ ๊ธฐ๋ฅ(๋ฉ์๋) ๋๋ ์์ฑ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
// ๊ธฐ๋ณธํ
๊ฐ์ฒด.๋ฉ์๋();
TV.์ผ๋ค();
TV.๋๋ค();
๊ฐ์ฒด.์์ฑ ๋๋ ๊ฐ์ฒด.์์ฑ=๊ฐ;
TV.๋๋น = "30inch";
TV.์์ = "black";
(2) ๊ฐ์ฒด์ ์ข ๋ฅ
- ๊ฐ์ฒด๋ ํฌ๊ฒ ์ธ ๊ฐ์ง๋ก ๋ถ๋ฅํ ์ ์์ต๋๋ค.
(2-1) ๋ด์ฅ ๊ฐ์ฒด
- ์๋ฐ์คํฌ๋ฆฝํธ ์์ฒด ๋ด์์ ์ง์ํ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.
- ๋ด์ฅ ๊ฐ์ฒด์๋ ๋ฌธ์(String), ๋ ์ง(Date), ์ํ(Math), ๋ฐฐ์ด(Array) ๊ฐ์ฒด ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋์ด์์ต๋๋ค.
(2-2) ๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ(BOM)
- ๋ธ๋ผ์ฐ์ ์ ๊ณ์ธต์ ์ผ๋ก ๋ด์ฅ๋์ด ์๋ ๊ฐ์ฒด๋ค์ ๋งํฉ๋๋ค.
- ๋ธ๋ผ์ฐ์ ๊ฐ์ฒด๋ก๋ windows, screen, location, history, navigaor ๊ฐ์ฒด ๋ฑ์ด ์์ต๋๋ค.
(2-3) ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM)
- HTML ๋ฌธ์ ๊ตฌ์กฐ๋ฅผ ๋งํฉ๋๋ค.
- HTML ๋ฌธ์์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ์ต์์ ๊ฐ์ฒด๋ก <html> ์ด ์์ผ๋ฉฐ, ๊ทธ ํ์ ๊ฐ์ฒด๋ก๋ <head>์ <body> ๊ฐ ์์ต๋๋ค.
์ด์ ํ๋ ํ๋ ๊ฐ์ฒด๋ฅผ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
2. ๋ด์ฅ ๊ฐ์ฒด
- ๋ด์ฅ ๊ฐ์ฒด(Built-in Object) ๋ ๋ธ๋ผ์ฐ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ด์ฅ๋ ๊ฐ์ฒด๋ฅผ ๋งํฉ๋๋ค.
(1) ๋ด์ฅ ๊ฐ์ฒด ์์ฑํ๊ธฐ
- ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋์๋ new ๋ผ๋ ํค์๋์ ์์ฑํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
// ๊ธฐ๋ณธํ
์ฐธ์กฐ ๋ณ์ = new ์์ฑํจ์();
(1) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>๋ด์ฅ ๊ฐ์ฒด ์์ฑํ๊ธฐ</title>
<script type="text/javascript">
let tv = new Object(); // ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ๋ณ์ tv๊ฐ ์ฐธ์กฐํฉ๋๋ค
// tv ๊ฐ์ฒด์ ์์ฑ์ ์์ฑํฉ๋๋ค
tv.width = "30cm"; // tv ์ ๊ฐ๋ก ์์ฑ
tv.height = "25cm"; // tv ์ ์ธ๋ก ์์ฑ
tv.weight = "5kg"; // tv ์ ๋ฌด๊ฒ ์์ฑ
tv.color = "black"; // tv ์ ์ ์์ฑ
// tv ๊ฐ์ฒด์ off ๊ธฐ๋ฅ(๋ฉ์๋)์ ์์ฑํฉ๋๋ค
tv.off = function() {
document.write("์ ์ off", "<br/>");
}
document.write(tv.width, "<br/>"); // tv์ ๊ฐ๋ก ์์ฑ์ ์ถ๋ ฅํฉ๋๋ค
document.write(tv.height, "<br/>"); // tv์ ๋์ด ์์ฑ์ ์ถ๋ ฅํฉ๋๋ค
document.write(tv.weight, "<br/>"); // tv์ ๋ฌด๊ฒ ์์ฑ์ ์ถ๋ ฅํฉ๋๋ค
document.write(tv.color, "<br/>"); // tv์ ์ปฌ๋ฌ ์์ฑ์ ์ถ๋ ฅํฉ๋๋ค
tv.off(); // tv off ๊ธฐ๋ฅ์ ์คํํฉ๋๋ค
</script>
</head>
<body>
</body>
</html>
(2) ๋ ์ง ์ ๋ณด ๊ฐ์ฒด
- ๋ ์ง ๊ฐ์ฒด๋ ํ์ฌ ๋ ์ง ๋๋ ํน์ ๋ ์ง ๊ด๋ จ ๋ค์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, 2002.02.02 ๊ฐ ๋ฌด์จ ์์ผ์ธ์ง ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค.
- ๋ ์ง ์ ๋ณด ๊ฐ์ฒด์๋ ๋ ์ง์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฉ์๋์ ๋ ์ง๋ฅผ ์์ ํ๋ ๋ฉ์๋๋ก ๋๋์ด ์ง๋๋ค.
- ๋ค์์ ๋ ์ง ์ ๋ณด ๊ฐ์ฒด์ ๋ํ ํ ์ ๋๋ค.
๋ ์ง ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ๋ (GET) | ๋ ์ง ์ ๋ณด๋ฅผ ์์ ํ ๋ (SET) | ||
getFullYear() | ์ฐ๋ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค | setFullYear() | ์ฐ๋ ์ ๋ณด๋ง ์์ ํ๋ค |
getMonth() | ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค (ํ์ฌ ์ -1) | setMonth() | ์ ์ ๋ณด๋ง ์์ ํ๋ค |
getDate() | ์ผ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค | setDate() | ์ผ ์ ๋ณด๋ง ์์ ํ๋ค |
getDay() | ์์ผ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค (์ผ: 0 ~ ํ : 6) |
์์ผ์ ๋ ์ง๋ฅผ ๋ฐ๊พธ๋ฉด ์๋์ผ๋ก ๋ฐ๋๋ฏ๋ก setDay ๋ ์๋ค | |
getHours() | ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค | setHours() | ์ ์ ๋ณด๋ง ์์ ํ๋ค |
getMinutes() | ๋ถ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค | setMinutes() | ๋ถ ์ ๋ณด๋ง ์์ ํ๋ค |
getSeconds() | ์ด ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค | setSeconds() | ์ด ์ ๋ณด๋ง ์์ ํ๋ค |
getMilliseconds() | ๋ฐ๋ฆฌ์ด ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค (1/1000 ์ด ๋จ์) |
setMilliseconds() | ๋ฐ๋ฆฌ์ด ์ ๋ณด๋ง ์์ ํ๋ค |
getTime() | 1970๋ 1์ 1์ผ๋ถํฐ ๊ฒฝ๊ณผ๋ ์๊ฐ์ ๋ฐ๋ฆฌ์ด๋ก ํ๊ธฐํ๋ค | setTime() | 1970๋ 1์ 1์ผ๋ถํฐ ๊ฒฝ๊ณผ๋ ์๊ฐ์ ๋ฐ๋ฆฌ์ด๋ก ์์ ํ๋ค |
toGMTString() | GMT ํ์ค ํ๊ธฐ ๋ฐฉ์์ผ๋ก ๋ฌธ์ํ ๋ฐ์ดํฐ๋ก ๋ฐํํ๋ค | toLocaleString() | ์ด์ ์์คํ ํ๊ธฐ ๋ฐฉ์์ผ๋ก ๋ฌธ์ํ ๋ฐ์ดํฐ๋ก ๋ฐํํ๋ค |
// ๊ธฐ๋ณธํ
์ฐธ์กฐ ๋ณ์ = new Date();
let t = new Date();
let t = new Date("2002/2/20");
let t = new Date(2002,2,22);
(2) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>๋ ์ง ์ ๋ณด ๊ฐ์ฒด</title>
<script type="text/javascript">
let time = new Date(); // ํ์ฌ ๋ ์ง ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค
let nowMonth = time.getMonth(); // ํ์ฌ ์์ ๋ฐํํ๋ฉฐ -1 ๋ก ๋์ต๋๋ค
let nowDate = time.getDate(); // ํ์ฌ ์ผ์๋ฅผ ๋ฐํํฉ๋๋ค
let nowDay = time.getDay(); // ํ์ฌ ์์ผ์ ๋ฐํํฉ๋๋ค (0: ์ผ ~ 6: ํ )
document.write("ํ์ฌ ์: " + nowMonth, "<br/>");
document.write("ํ์ฌ ์ผ: " + nowDate, "<br/>");
document.write("ํ์ฌ ์์ผ: " + nowDay, "<br/>");
let worldcup = new Date(2002, 4, 31); // 2002(5.31) ์๋์ปต ๋ ์ง ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค (์ -1)
let theMonth = worldcup.getMonth(); // ๋ ์ง ๊ฐ์ฒด์์ ์์ ๋ํ ์ ๋ณด๋ง ๊ฐ์ ธ์ต๋๋ค
let theDate = worldcup.getDate(); // ๋ ์ง ๊ฐ์ฒด์์ ์ผ์ ๋ํ ์ ๋ณด๋ง ๊ฐ์ ธ์ต๋๋ค
let theDay = worldcup.getDay(); // ๋ ์ง ๊ฐ์ฒด์์ ์์ผ์ ๋ํ ์ ๋ณด๋ง ๊ฐ์ ธ์ต๋๋ค
document.write("2002 ์๋์ปต์ ๋ช ์์ ๊ฐ์ต๋์๋์?: " + theMonth, "<br/>");
document.write("2002 ์๋์ปต์ ๋ช ์ผ์ ๊ฐ์ต๋์๋์?: " + theDate, "<br/>");
document.write("2002 ์๋์ปต์ ๋ฌด์จ ์์ผ์ ๊ฐ์ต๋์๋์?: " + theDay, "<br/>");
</script>
</head>
<body>
(3) ์ซ์ ๊ฐ์ฒด
- ์ซ์๋ฅผ ํ๊ธฐํ ๋, ํํ ๊ฐ๋ฅํ ์์ ์์ฑ๊ณผ ์ซ์ ํ๊ธฐ๋ฒ์ ๋ํ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
// ๊ธฐ๋ณธํ
let ์ฐธ์กฐ๋ณ์ = new Number(๊ฐ) ๋๋ let ์ฐธ์กฐ๋ณ์ = ๊ฐ;
Number.์์ฑ;
(3) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>์ซ์ ๊ฐ์ฒด</title>
<script type="text/javascript">
let num1 = 3.456789;
let num2 = 900000000;
let num3 = "30.5px";
let num4 = 10;
document.write("ํํ ๊ฐ๋ฅํ ๊ฐ์ฅ ํฐ ์: " + Number.MAX_VALUE, "<br/>");
document.write("ํํ ๊ฐ๋ฅํ ๊ฐ์ฅ ์์ ์: " + Number.MIN_VALUE, "<br/>");
document.write("์ซ์๊ฐ ์๋๊ฒฝ์ฐ์ ํ๊ธฐ: " + Number.NaN, "<br/>");
document.write("๋ฌดํ๋ ์ ํ๊ธฐ: " + Number.POSITIVE_INFINITY, "<br/>");
document.write("์์ ๋ฌดํ๋ ์ ํ๊ธฐ: " + Number.NEGATIVE_INFINITY, "<br/>");
document.write(num2.toExponential(1), "<br/>"); // toExponential : ์ซ์๋ฅผ ์ง์ ํ๊ธฐ๋ฒ์ผ๋ก ํ๊ธฐํด ๋ฌธ์์ด๋ก ๋ฐํ
document.write(num1.toFixed(2), "<br/>"); // toFixed : ์์์ ์๋ฆฌ์๋ฅผ ์ ํํ์ฌ ๋ฌธ์์ด๋ก ๋ฐํ
document.write(num1.toPrecision(2), "<br/>"); // toPrecision : ์์ ์๋ฆฌ์๋ฅผ ์ ํํ์ฌ ๋ฌธ์์ด๋ก ๋ฐํ
document.write(num1.toString(), "<br/>"); // toString : ์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ฐํ
document.write(num4.valueOf(), "<br/>"); // valueOf : Boolean ์ ๋ํ ์์ ๋ฐ์ดํฐํ์ ๋ฐํ
document.write(parseInt(num3) + num4, "<br/>"); // parseInt : ๋ฌธ์์ด์ ์ซ์ํ(์ ์)์ผ๋ก ๋ฐํ
document.write(parseFloat(num3) + num4, "<br/>"); // parseFloat : ๋ฌธ์์ด์ ์ซ์ํ(๋ถ๋์์์ )์ผ๋ก ๋ฐํ
</script>
</head>
<body>
</body>
</html>
(4) ์ํ ๊ฐ์ฒด
- ์์ ์๋ฅผ ๋ํ๊ฑฐ๋ ๋นผ๋ ์์ ์ ์ฐ์ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
- ํ์ง๋ง ์ต๋๊ฐ, ๋ฐ์ฌ๋ฆผ ๋ฑ ์ํ ๊ด๋ จ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ํ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ๋ค์ ํ๋ ์ํ ๊ฐ์ฒด์ ๋ฉ์๋์ ์ฐธ์กฐํ๋ ์์์ ๋ํด ์ ๋ฆฌํ ๊ฒ์ ๋๋ค.
์ข ๋ฅ | ์ค๋ช |
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 | ์์ฃผ์จ ์์๋ฅผ ๋ฐํํ๋ค |
(4) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>์ํ ๊ฐ์ฒด</title>
<script type="text/javascript">
let num = 2.1234;
let maxNum = Math.max(1, 1000, 10, 100); // ์ต๋๊ฐ์ ๋ฐํํฉ๋๋ค
let minNum = Math.min(1, 1000, 10, 100); // ์ต์๊ฐ์ ๋ฐํํฉ๋๋ค
let roundNum = Math.round(num); // ๋ฐ์ฌ๋ฆผ ๊ฐ์ ๋ฐํํฉ๋๋ค
let floorNum = Math.floor(num); // ์์์ ์ฒซ์งธ ์๋ฆฌ์์ ๊ฐ์ ๋ด๋ฆฝ๋๋ค
let ceilNum = Math.floor(num); // ์์์ ์ฒซ์งธ ์๋ฆฌ์์ ์ฌ๋ฆฝ๋๋ค
let rndNum = Math.random(); // 0~1 ์ฌ์ด ๋์๋ฅผ ๋ฐ์ํฉ๋๋ค
let piNum = Math.PI; // Math.PI๋ ์์ฃผ์จ ์์๋ฅผ ๋ฐํํฉ๋๋ค
document.write(maxNum, "<br/>");
document.write(minNum, "<br/>");
document.write(roundNum, "<br/>");
document.write(floorNum, "<br/>");
document.write(ceilNum, "<br/>");
document.write(rndNum, "<br/>");
document.write(piNum, "<br/>");
</script>
</head>
<body>
</body>
</html>
(5) ๋ฐฐ์ด ๊ฐ์ฒด
- ์์ ๋ณ์์๋ ํ ๊ฐ์ ๋ฐ์ดํฐ๋ง ์ ์ฅํ ์ ์๊ณ , ๋ง์ผ ๋ณ์์ ์ ๊ฐ์ด ์ ์ฅ๋๋ฉด ๊ธฐ์กด์ ์ ์ฅ๋ ๊ฐ์ ์ ๊ฑฐ๋์์ต๋๋ค.
- ํ์ง๋ง ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ ์ด์ฉํ๋ฉด ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ณ์์ ์ ์ฅํ ์ ์์ต๋๋ค.
- ๋ค์ ํ๋ ๋ฐฐ์ด ๊ฐ์ฒด์์ ์ฌ์ฉํ ์ ์๋ ๋ฉ์๋ ๋ฐ ์์ฑ์ ๋๋ค.
์ข ๋ฅ | ์ค๋ช |
join(์ฐ๊ฒฐ ๋ฌธ์) | ๋ฐฐ์ด ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐ ๋ฌธ์ ๊ธฐ์ค์ผ๋ก 1๊ฐ์ ๋ฌธ์ํ ๋ฐ์ดํฐ๋ก ๋ฐํํ๋ค |
reverse() | ๋ฐฐ์ด ๊ฐ์ฒด์ ๋ฐ์ดํฐ์ ์์๋ฅผ ๊ฑฐ๊พธ๋ก ๋ฐ๊พผ ํ ๋ฐํํ๋ค |
sort() | ๋ฐฐ์ด ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค |
slice(index1, index2) | ๋ฐฐ์ด ๊ฐ์ฒด์ ๋ฐ์ดํฐ ์ค ์ํ๋ ์ธ๋ฑ์ค ๊ตฌ๊ฐ๋งํผ ์๋ผ์ ๋ฐฐ์ด ๊ฐ์ฒด๋ก ๊ฐ์ ธ์จ๋ค |
concat() | 2 ๊ฐ์ ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ ํ๋๋ก ๊ฒฐํฉ์ํจ๋ค |
pop() | ๋ฐฐ์ด์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์ค ๋ง์ง๋ง ์ธ๋ฑ์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค |
push(new data) | ๋ฐฐ์ด ๊ฐ์ฒด ๋ง์ง๋ง ์ธ๋ฑ์ค์ ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ค |
shift() | ๋ฐฐ์ด ๊ฐ์ฒด์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์ค ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค |
unshift(new data) | ๋ฐฐ์ด ๊ฐ์ฒด์ ๊ฐ์ฅ ์์ ์ธ๋ฑ์ค์ ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ค |
length() | ๋ฐฐ์ด์ ์ ์ฅ๋ ์ด ๋ฐ์ดํฐ์ ๊ฐ์๋ฅผ ๋ฐํํ๋ค |
// ๊ธฐ๋ณธํ
let ์ฐธ์กฐ๋ณ์ = new Array();
let ์ฐธ์กฐ๋ณ์ = new Array(๊ฐ1, ๊ฐ2, ๊ฐ3, ... , ๊ฐn);
let ์ฐธ์กฐ๋ณ์ = [๊ฐ1, ๊ฐ2, ๊ฐ3, ... , ๊ฐn];
// ๋ฐฐ์ด ๊ฐ์ฒด ์ ์ฅ๋ ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ
์ฐธ์กฐ๋ณ์[์ธ๋ฑ์ค ๋ฒํธ];
(5) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>๋ฐฐ์ด ๊ฐ์ฒด</title>
<script type="text/javascript">
let num = ["์ฌ๋น", "๊ต๋", "๋ฐฉ๋ฐฐ", "๊ฐ๋จ"];
// ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํ์์ต๋๋ค
document.write(num, "<br/>");
// ๋ฐฐ์ด ๊ฐ์ฒด์ ํ์
์ ์ถ๋ ฅํ์์ต๋๋ค
document.write(typeof num, "<br/>");
/* ๊ธฐ์ค ๋ฌธ์("-") ๊ธฐ์ค์ผ๋ก ๋ฐฐ์ด์ ๊ฐ๋ค์ด ํ๋์ ๋ฌธ์ํ ๋ฐ์ดํฐ๋ก ๊ฒฐํฉ๋ฉ๋๋ค */
document.write(num.join("-"), "<br/>");
document.write(typeof num.join("-"), "<br/>");
// ๋ฐฐ์ด ๊ฐ์ฒด์ ๊ฐ์ ์์๋ฅผ ๊ฑฐ๊พธ๋ก ๋ค์ง๊ณ ์ถ๋ ฅํฉ๋๋ค
document.write(num.reverse(), "<br/>");
// ๋ฐฐ์ด ๊ฐ์ฒด์ ๊ฐ๋ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ ํ ์ถ๋ ฅํฉ๋๋ค
document.write(num.sort(), "<br/>");
</script>
</head>
<body>
</body>
</html>
(6) ๋ฌธ์ ๊ฐ์ฒด
- ๋ฌธ์ ๊ฐ์ฒด(String Object) ๋ ๋ฌธ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด๋ก ์ทจ๊ธํ๋ ๊ฒ์ผ๋ก, ์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํฉ๋๋ค.
- new ํค์๋์ ๋ฌธ์ ๊ฐ์ฒด ํจ์ String ๋ฉ์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ๋ค์ ํ๋ ๋ฌธ์ ๊ฐ์ฒด ๋ฉ์๋ ๋ฐ ์์ฑ์ ์ ๋ฆฌํ ํ์ ๋๋ค.
์ข ๋ฅ | ์ค๋ช |
charAt(index) | ๋ฌธ์์ด์์ ์ธ๋ฑ์ค ๋ฒํธ์ ํด๋นํ๋ ๋ฌธ์๋ฅผ ๋ฐํํ๋ค |
indexOf("์ฐพ์ ๋ฌธ์") | ๋ฌธ์์ด์์ ์ผ์ชฝ๋ถํฐ ์ฐพ์ ๋ฌธ์์ ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ฐพ์ ์ต์ด๋ก ์ผ์นํ๋ ๋ฌธ์์ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๋ฐํํ๋ค ๋ง์ผ ์ฐพ๋ ๋ฌธ์๊ฐ ์์ผ๋ฉด -1์ ๋ฐํํ๋ค |
lastIndexOf("์ฐพ์ ๋ฌธ์") | ๋ฌธ์์ด์์ ์ค๋ฅธ์ชฝ๋ถํฐ ์ฐพ์ ๋ฌธ์์ ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ฐพ์ ์ต์ด๋ก ์ผ์นํ๋ ๋ฌธ์์ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๋ฐํํ๋ค ๋ง์ผ ์ฐพ๋ ๋ฌธ์๊ฐ ์์ผ๋ฉด -1์ ๋ฐํํ๋ค |
match("์ฐพ์ ๋ฌธ์") | ๋ฌธ์์ด์์ ์ผ์ชฝ๋ถํฐ ์ฐพ์ ๋ฌธ์์ ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ฐพ์ ์ต์ด๋ก ์ฐพ์ ๋ฌธ์๋ฅผ ๋ฐํํ๋ค ๋ง์ผ ์ฐพ๋ ๋ฌธ์๊ฐ ์์ผ๋ฉด null์ ๋ฐํํ๋ค |
replace("๋ฐ๊ฟ ๋ฌธ์", "์ ๋ฌธ์") | ๋ฌธ์์ด์์ ์ผ์ชฝ๋ถํฐ ๋ฐ๊ฟ ๋ฌธ์์ ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ฐพ์ ์ต์ด๋ก ์ฐพ์ ๋ฌธ์๋ฅผ ์ ๋ฌธ์๋ก ์นํํ๋ค |
search("์ฐพ์ ๋ฌธ์") | ๋ฌธ์์ด์์ ์ผ์ชฝ๋ถํฐ ์ฐพ์ ๋ฌธ์์ ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ฐพ์ ์ต์ด๋ก ์ผ์นํ๋ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๋ฐํํ๋ค |
slice(a, b) | a ๊ฐ์ ๋ฌธ์๋ฅผ ์๋ฅด๊ณ b ๋ฒ์งธ ์ดํ์ ๋ฌธ์๋ฅผ ์๋ฅธ ํ ๋จ์ ๋ฌธ์๋ฅผ ๋ฐํํ๋ค ์ฆ, a ~ b ์ฌ์ด์ ๋ฌธ์๋ง ๋ฐํํ๋ค |
substring(a, b) | a ์ธ๋ฑ์ค๋ถํฐ b ์ธ๋ฑ์ค ์ด์ ๊ตฌ๊ฐ์ ๋ฌธ์๋ฅผ ๋ฐํํ๋ค let str = "hello javascript"; str.substring(3, 7); -> "lo j" ๋ฅผ ๋ฐํ |
substr(a, ๋ฌธ์ ๊ฐ์) | ๋ฌธ์์ด์ a ์ธ๋ฑ์ค๋ถํฐ ์ง์ ํ ๋ฌธ์ ๊ฐ์๋งํผ ๋ฌธ์์ด์ ๋ฐํํ๋ค let str = "hello javascript"; str.substr(3, 2); -> "lo" ๋ฅผ ๋ฐํ |
split("๋ฌธ์") | ์ง์ ํ ๋ฌธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๋๋์ด ๋ฐฐ์ด์ ์ ์ฅํ์ฌ ๋ฐํํ๋ค |
toLowerCase() | ๋ฌธ์์ด์์ ์๋ฌธ ๋๋ฌธ์๋ฅผ ๋ชจ๋ ์๋ฌธ์๋ก ๋ฐ๊พผ๋ค |
toUpperCase() | ๋ฌธ์์ด์์ ์๋ฌธ ์๋ฌธ์๋ฅผ ๋ชจ๋ ๋๋ฌธ์๋ก ๋ฐ๊พผ๋ค |
length | ๋ฌธ์์ด์์ ๋ฌธ์์ ๊ฐ์๋ฅผ ๋ฐํํ๋ค let str = "hello welcom"; str.length; -> 13์ ๋ฐํํ๋ค |
concat("์๋ก์ด ๋ฌธ์") | ๋ฌธ์์ด์์ ์๋ก์ด ๋ฌธ์์ด์ ๊ฒฐํฉํ๋ค |
charCodeAt("์ฐพ๋ ๋ฌธ์") | ์ฐพ์ ๋ฌธ์์ ์์คํค ์ฝ๋ ๊ฐ์ ๋ฐํํ๋ค |
fromCharCode(์์คํค ์ฝ๋ ๊ฐ) | ์์คํค ์ฝ๋ ๊ฐ์ด ํด๋นํ๋ ๋ฌธ์๋ฅผ ๋ฐํํ๋ค |
trim() | ๋ฌธ์์ ์ ๋๋ ๋ค์ ๊ณต๋ฐฑ ๋ฌธ์์ด์ ์ญ์ ํ๋ค |
// ๊ธฐ๋ณธํ
let ์ฐธ์กฐ๋ณ์ = new String(๋ฌธ์ํ ๋ฐ์ดํฐ);
let t = new String("hello world");
let t = "hello world"; // ๋ฌธ์ ๊ฐ์ฒด ์์ฑ
(6) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>๋ฌธ์ ๊ฐ์ฒด</title>
<script type="text/javascript">
let t = "Hello Thank you good luck to you";
document.write(t.charAt(16), "<br/>");
document.write(t.indexOf("you"), "<br/>");
document.write(t.indexOf("you", 16), "<br/>");
document.write(t.lastIndexOf("you"), "<br/>");
document.write(t.lastIndexOf("you", 25), "<br/>");
document.write(t.match("luck"), "<br/>");
document.write(t.search("you"), "<br/>");
document.write(t.substr(21, 4), "<br/>");
document.write(t.substring(6, 12), "<br/>");
document.write(t.replace("you", "me"), "<br/>");
document.write(t.toLowerCase(), "<br/>");
document.write(t.toUpperCase(), "<br/>");
document.write(t.length, "<br/>");
let s = t.split(" ");
document.write(s[0], "<br/>");
document.write(s[4], "<br/>");
document.write(String.charCodeAt("A"), "<br/>");
document.write(String.fromCharCode(65), "<br/>");
</script>
</head>
<body>
</body>
</html>
3. ๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ(BOM)
(1) ๋ธ๋ผ์ฐ์ ๊ฐ์ฒด๋?
- ๋ธ๋ผ์ฐ์ ์ ๋ด์ฅ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.
- ๋ธ๋ผ์ฐ์ ๊ฐ์ฒด์ ์ต์์ ๊ฐ์ฒด๋ window ๊ฐ์ฒด์ด๋ฉฐ ๊ทธ ํ์๋ก๋ document, screen, location, history, navigator ๋ฑ์ ๊ณ์ธต์ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋ ๊ฒ์ ์ผ์ปฌ์ด ๋ธ๋ผ์ฐ์ ๊ฐ์ฒด ๋ชจ๋ธ (BOM : Browser Object Model) ์ด๋ผ๊ณ ํฉ๋๋ค.
window - document : body, div, img, a, form, input, ...
- screen
- location
- history
- navigator
(2) windows ๊ฐ์ฒด
- windows ๊ฐ์ฒด ๋ฉ์๋ ์ข ๋ฅ์ ๋ํ ํ์ ๋๋ค.
์ข ๋ฅ | ์ค๋ช |
open() | ์ ์ฐฝ์ ์ด ๋ ์ฌ์ฉํ๋ค |
alert() | ๊ฒฝ๊ณ ์ฐฝ์ ๋์ด๋ค |
prompt() | ์ง์์๋ต ์ฐฝ์ ๋์ด๋ค |
confirm() | ํ์ธ / ์ทจ์ ์ฐฝ์ ๋์ด๋ค |
moveTo() | ์ฐฝ์ ์์น๋ฅผ ์ด๋์ํฌ ๋ ์ฌ์ฉํ๋ค |
resizeTo() | ์ฐฝ์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝ์ํฌ ๋ ์ฌ์ฉํ๋ค |
setInterval() | ์ผ์ ๊ฐ๊ฒฉ์ผ๋ก ์ง์์ ์ผ๋ก ์คํ๋ฌธ์ ์คํ์ํฌ ๋ ์ฌ์ฉํ๋ค |
setTimeout() | ์ผ์ ๊ฐ๊ฒฉ์ผ๋ก ํ ๋ฒ๋ง ์คํ๋ฌธ์ ์คํ์ํฌ ๋ ์ฌ์ฉํ๋ค |
(3) screen ๊ฐ์ฒด
- screen ๊ฐ์ฒด๋ ์คํฌ๋ฆฐ(๋ชจ๋ํฐ) ๋๋น, ๋์ด ๋ฑ ์ ๋ณด(์์ฑ)๋ฅผ ์ ๊ณตํฉ๋๋ค.
// ๊ธฐ๋ณธํ
screen.์์ฑ;
screen.width; // ๋ชจ๋ํฐ์ ๋๋น ๊ฐ์ ๋ฐํํฉ๋๋ค
(3) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>์คํฌ๋ฆฐ ๊ฐ์ฒด</title>
<script type="text/javascript">
document.write("width: " + screen.width, "<br/>");
documetn.write("height: " + screen.height, "<br/>");
</script>
</head>
<body>
</body>
</html>
(4) location ๊ฐ์ฒด
- location๊ฐ์ฒด๋ ๋ธ๋ผ์ฐ์ ์ url ๊ด๋ จ ์ ๋ณด(์์ฑ) ๋ฐ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋ค์์ location ๊ฐ์ฒด์ ์์ฑ, ๋ฉ์๋ ์ข ๋ฅ๋ฅผ ์ ๋ฆฌํ ํ์ ๋๋ค.
์ข ๋ฅ | ์ค๋ช |
location.href | ์ฃผ์ ์์ญ์ ์ฐธ์กฐ ์ฃผ์๋ฅผ ์ค์ ํ๊ฑฐ๋ url์ ๋ฐํํ๋ค |
location.hash | url ์ ํด์๊ฐ(#์ ๋ช
์๋ ๊ฐ)์ ๋ฐํํ๋ค ์) http://www.tistory.com#hello |
location.hostname | url์ ํธ์คํธ ์ด๋ฆ์ ์ค์ ํ๊ฑฐ๋ ๋ฐํํ๋ค |
location.host | url์ ํธ์คํธ ์ด๋ฆ๊ณผ ํฌํธ ๋ฒํธ๋ฅผ ๋ฐํํ๋ค |
location.port | url์ ํฌํธ ๋ฒํธ๋ฅผ ๋ฐํํ๋ค |
location.protocol | url์ ํ๋กํ ์ฝ์ ๋ฐํํ๋ค |
location.search | url์ ์ฟผ๋ฆฌ(์์ฒญ ๊ฐ)์ ๋ฐํํ๋ค ์) http://www.tistory.com?pageNum=1&sort=DESC |
location.reload | ์๋ก ๊ณ ์นจ์ด ์ผ์ด๋๋ค |
// ๊ธฐ๋ณธํ
location.์์ฑ ๋๋ location.๋ฉ์๋();
location.href; // ์ฃผ์ ์์ญ์ ์ฐธ์กฐ ์ฃผ์(url)๋ฅผ ๋ฐํํฉ๋๋ค
(5) history ๊ฐ์ฒด
- history ๊ฐ์ฒด๋ ๋ธ๋ผ์ฐ์ ์ ๋ฐฉ๋ฌธ ๊ธฐ๋ก์ ๋ํ ์ ๋ณด(์์ฑ) ๋ฐ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋ง์น ๋ธ๋ผ์ฐ์ ์ ์ด์ , ๋ค์๋ฒํผ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
// ๊ธฐ๋ณธํ
history.๋ฉ์๋ ๋๋ history.์์ฑ;
history.back(); // ๋ฐ๋ก ์ด์ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค
(6) navigator ๊ฐ์ฒด
- navigator ๊ฐ์ฒด๋ ๋ฐฉ๋ฌธ์์ ๋ธ๋ผ์ฐ์ ์ ๋ณด์ ์ด์์ฒด์ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
4. ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM)
(1) ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ
- ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ์ด๋ HTML ๋ฌธ์์ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.
- ๊ฐ๋ น <img> ํ๊ทธ์๋ src ๋ผ๋ ์์ฑ๊ณผ ๊ทธ๋ฆผ์ ํํํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๋ ๋ฏ HTML ํ๊ทธ๋ ๋ค๋ฅธ ๋ง๋ก ๋ฌธ์ ๊ฐ์ฒด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
(2) ์ ํ์
- ์ ํ์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด HTML์ ๋ฌธ์ ๊ฐ์ฒด๋ฅผ ์ ํํ ๋ ์ฌ์ฉํฉ๋๋ค.
// JavaScript ์ ํ์ (CSS ์ ํ์์ ์ ์ฌ)
// CSS
#box {
color: red;
}
#box + p {
color: red;
}
//javascript
document.getElementById("box").style.color = red;
document.getElementById("box").nextSibling.style.color = red;
(3) ์ธ์ ์์ ๊ด๊ณ ํ์ ํ๊ธฐ
- <html> ์ ๋ชจ๋ ๋ฌธ์ ๊ฐ์ฒด๋ฅผ ๊ฐ์ธ๊ณ ์์ด ๋ฌธ์ ๊ฐ์ฒด์ ์ต์์ ๊ฐ์ฒด ๋๋ ๋ฃจํธ ๊ฐ์ฒด๋ผ๊ณ ํฉ๋๋ค.
- <head> ํ๊ทธ์ <body> ํ๊ทธ๋ <html> ํ๊ทธ์ ์์ ์์์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด <html> ํ๊ทธ๋ ์ด๋ค์ ๋ถ๋ชจ ์์๊ฐ ๋ฉ๋๋ค.
(4) ์ ํ์ ์ข ๋ฅ
๊ตฌ๋ถ | ์ข ๋ฅ | ์ค๋ช |
์ง์ ์ ํ์ |
document.getElementById("์์ด๋ ๋ช ") | ์์ด๋๋ฅผ ์ด์ฉํด ์์๋ฅผ ์ ํํด ์จ๋ค |
document.getElementByTagName("์์(ํ๊ทธ)๋ช ") | ์ ํํ ์์์ ๋ถ๋ชจ ์์๋ฅผ ์ ํํด ์จ๋ค | |
document.formName.inputName | ํผ ์์์ name ์์ฑ์ ์ด์ฉํด ์์๋ฅผ ์ ํํ๋ค | |
์ธ์ ๊ด๊ณ ์ ํ์ |
parentNode | ์ ํํ ์์์ ๋ถ๋ชจ ์์๋ฅผ ์ ํํด ์จ๋ค |
childNodes | ์ ํํ ์์์ ๋ชจ๋ ์์ ์์๋ฅผ ์ ํํด ์จ๋ค ์ ํํ ๋ชจ๋ ์์๊ฐ ๋ฐฐ์ด ๊ฐ์ฒด๋ก ์ ์ฅ๋๋ค |
|
children | ์ ํํ ์์์ ์์ ์์์ธ ํ๊ทธ๋ง ์ ํํด ์จ๋ค ์ ํํ ๋ชจ๋ ์์๊ฐ ๋ฐฐ์ด ๊ฐ์ฒด๋ก ์ ์ฅ๋๋ค |
|
firstChild | ์ ํํ ์์์ ์ฒซ ๋ฒ์งธ ์์ ์์๋ง ์ ํํด ์จ๋ค | |
previousSibling | ์ ํํ ์์์ ์ด์ ์ ์ค๋ ํ์ ์์๋ง ์ ํํด ์จ๋ค | |
nextSibling | ์ ํํ ์์์ ๋ค์์ ์ค๋ ํ์ ์์๋ง ์ ํํด ์จ๋ค |
* parentNode, firstChild, previousSibling, nextSibling ๋ฑ์ ๊ณต๋ฐฑ ๋ฌธ์ ์ธ์ ํธํ์ฑ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค๊ณ ํฉ๋๋ค.
(5) ์ ํ์ ์ ์ฉ ์์น์ ๋ฐฉ๋ฒ
// ์๋ชป๋ ์์
<html>
<head>
์๋ฐ์คํฌ๋ฆฝํธ ์ ์ธ // HTML ๋ฌธ๋จ ํ๊ทธ๊ฐ ๋ก๋ฉ๋๊ธฐ ์ ์ ์คํ๋ฉ๋๋ค
</head>
<body>
HTML ๋ฌธ๋จ ํ๊ทธ ์์ฑ
</body>
</html>
// ์ฌ๋ฐ๋ฅธ ์์ 1
<html>
<head>
</head>
<body>
HTML ๋ฌธ๋จ ํ๊ทธ ์์ฑ
์๋ฐ์คํฌ๋ฆฝํธ ์ ์ธ // HTML ๋ฌธ๋จ ํ๊ทธ๊ฐ ๋ก๋ฉ๋ ํ์ ์คํ๋ฉ๋๋ค
</body>
</html>
// ์ฌ๋ฐ๋ฅธ ์์ 2
<html>
<head>
<script type="text/javascript">
window.onload=function() {
์คํฌ๋ฆฝํธ ์คํ๋ฌธ; //HTML ๋ฌธ๋จ ํ๊ทธ๊ฐ ๋ก๋ฉ๋ ํ์ ์คํ๋ฉ๋๋ค
}
</script>
</head>
<body>
HTML ๋ฌธ๋จ ํ๊ทธ ์์ฑ
</body>
</html>
(6) ํผ ์์ ์ ํ์
- ๋ค์์ ํผ ์์ ์ ํ ๋ฐฉ์๊ณผ ๊ด๋ จํ ํ์ ๋๋ค.
๊ตฌ๋ถ | ์ข ๋ฅ | ์ค๋ช |
์ ๋ ฅ ์์ ์ ํ์ | document.getElementById("์์ด๋ ๋ช ") | ํผ ์์๋ฅผ ์์ด๋๋ก ์ ํํ ๋ ์ฌ์ฉํ๋ค |
document.ํผ์ด๋ฆ.์ ๋ ฅ์์์ด๋ฆ | ํผ ์์๋ฅผ ์ด๋ฆ์ผ๋ก ์ ํํ ๋ ์ฌ์ฉํ๋ค | |
select option ์ ํ์ | document.ํผ์ด๋ฆ.์ ๋ ฅ์์์ด๋ฆ.options[index] | <select>์ <option> ์ ์ ํํ ๋ ์ฌ์ฉํ๋ค |
let i = document.ํผ์ด๋ฆ.์
๋ ฅ์์์ด๋ฆ.selectedIndex; document.ํผ์ด๋ฆ.์ ๋ ฅ์์์ด๋ฆ.options[i]; |
<select>์ ์ ํ๋ <option> ์ ์ ํํ ๋ ์ฌ์ฉํ๋ค |
(6) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>DOM - ํผ ์์ ์์ </title>
</head>
<body>
<form action="#" method="get" name="f1">
<fieldset>
<legend>ํผ ์์1</legend>
<p>
<label for="user_pw1">๋น๋ฐ๋ฒํธ</label>
<input type="password" name="user_pw1" id="user_pw1">
</p>
<p>
<label for="user_pw2">๋น๋ฐ๋ฒํธ ์ฌํ์ธ</label>
<input type="password" name="user_pw2" id="user_pw2">
<input type="submit" value="ํ์ธ">
</p>
</fieldset>
</form>
<form action="#" method="get" name="f2">
<fieldset>
<legend>ํผ ์์2</legend>
<div id="terms">
๊ฐ์ธ์ ๋ณด์ ๋ณดํธ ๋ฐ ์ฌ์ฉ์ ๋ํด์๋ ๊ด๋ จ๋ฒ ๋ฐ ํ์ฌ์ ๊ฐ์ธ์ ๋ณด์ทจ๊ธ๋ฐฉ์นจ์ด ์ ์ฉ๋ฉ๋๋ค.
</div>
<p>
<input type="checkbox" name="accept" id="accept">
<label for="accept">์ฝ๊ด ๋์ํฉ๋๋ค.</label>
</p>
<p>
<input type="checkbox" name="allChk" id="allChk">
<label for="allChk">์ ์ฒด์ ํ</label><br>
<input type="checkbox" name="subject1" id="subject1" value="s1">
<label for="subject1">๊ณผ๋ชฉ1</label><br>
<input type="checkbox" name="subject2" id="subject2" value="s2">
<label for="subject2">๊ณผ๋ชฉ2</label><br>
<input type="checkbox" name="subject3" id="subject3" value="s3">
<label for="subject3">๊ณผ๋ชฉ3</label>
</p>
<p>
<input type="submit" value="๋ฑ๋ก ์๋ฃ">
<input type="reset" value="๋ฑ๋ก ์ทจ์">
</p>
</fieldset>
</form>
<script type="text/javascript">
// ์ฒซ ๋ฒ์งธ ํผ ์์์ ์ ์ก ๋ฒํผ์ ๋๋ ์ ๋ ์คํ
document.f1.onsubmit = function(e) {
let pw1 = document.f1.user_pw1;
let pw2 = document.f1.user_pw2;
pw2.value = pw1.value;
pw2.disabled = true;
return false;
}
// ์ ์ฒด ์ ํ ์ฒดํฌ๋ฐ์ค๋ฅผ ํด๋ฆญํ์ ๋
document.f2.allChk.onclick = function() {
if(this.checked) { // ์ฒดํฌ๋์ด ์์ผ๋ฉด true ๋ฐํ
document.f2.subject1.checked = true; // ์ฒซ ๋ฒ์งธ ์ฒดํฌ๋ฐ์ค ์ฒดํฌ
document.f2.subject2.checked = true; // ๋ ๋ฒ์งธ ์ฒดํฌ๋ฐ์ค ์ฒดํฌ
document.f2.subject3.checked = true; // ์ธ ๋ฒ์ฌ ์ฒดํฌ๋ฐ์ค ์ฒดํฌ
} else {
document.f2.subject1.checked = false; // ์ฒซ ๋ฒ์ฌ ์ฒดํฌ๋ฐ์ค ์ฒดํฌ ํด์
document.f2.subject2.checked = false; // ๋ ๋ฒ์งธ ์ฒดํฌ๋ฐ์ค ์ฒดํฌ ํด์
document.f2.subject3.checked = false; // ์ธ ๋ฒ์งธ ์ฒดํฌ๋ฐ์ค ์ฒดํฌ ํด์
}
}
// ๋ ๋ฒ์งธ ํผ ์์์ ์ ์ก๋ฒํผ ๋๋ ์ ๋ ์คํ
document.f2.onsubmit = function() {
let act = document.f2.accept;
if(act.checked == false) { // ์ฒดํฌ๋์ด ์์ง ์๋ค๋ฉด false
alert("์ฝ๊ด ๋์ํด์ผ ํฉ๋๋ค!");
act.focus();
return false;
}
}
</script>
</body>
</html>
๋ง๋ฌด๋ฆฌํ๋ฉฐ
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด๋ฅผ ๊ณต๋ถํด ๋ณด์์ต๋๋ค.
๋๊ธ๊ณผ ๊ณต๊ฐ์ ํญ์ ํ์์ ๋๋ค!