ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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#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>

     

    ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉฐ

    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ์ฒด๋ฅผ ๊ณต๋ถ€ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

     

    ๋Œ“๊ธ€๊ณผ ๊ณต๊ฐ์€ ํ•ญ์ƒ ํ™˜์˜์ž…๋‹ˆ๋‹ค!

    ๋Œ“๊ธ€