-
JavaScript ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด - ๊ฐ์ฒด๐ FrontEnd/JavaScript 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#hellolocation.hostname url์ ํธ์คํธ ์ด๋ฆ์ ์ค์ ํ๊ฑฐ๋ ๋ฐํํ๋ค location.host url์ ํธ์คํธ ์ด๋ฆ๊ณผ ํฌํธ ๋ฒํธ๋ฅผ ๋ฐํํ๋ค location.port url์ ํฌํธ ๋ฒํธ๋ฅผ ๋ฐํํ๋ค location.protocol url์ ํ๋กํ ์ฝ์ ๋ฐํํ๋ค location.search url์ ์ฟผ๋ฆฌ(์์ฒญ ๊ฐ)์ ๋ฐํํ๋ค
์) http://www.tistory.com?pageNum=1&sort=DESClocation.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>
๋ง๋ฌด๋ฆฌํ๋ฉฐ
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด๋ฅผ ๊ณต๋ถํด ๋ณด์์ต๋๋ค.
๋๊ธ๊ณผ ๊ณต๊ฐ์ ํญ์ ํ์์ ๋๋ค!
'๐ FrontEnd > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ