ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JavaScript ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ - ํ•จ์ˆ˜
    ๐ŸŒ FrontEnd/JavaScript 2022. 6. 3. 15:50

     

    ์‹œ์ž‘ํ•˜๋ฉด์„œ

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

     

     

    1. ํ•จ์ˆ˜

    (1) ํ•จ์ˆ˜๋ž€?

    • ํ•จ์ˆ˜๋ž€ ์ผ๋ จ์˜ ์‹คํ–‰๋ฌธ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
    • ํ•จ์ˆ˜์— ์ €์žฅ๋œ ์ผ๋ จ์˜ ์‹คํ–‰๋ฌธ์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋ฌธ์— ์˜ํ•ด ์–ธ์ œ๋“  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    (2) ๊ธฐ๋ณธ ํ•จ์ˆ˜ ์ •์˜๋ฌธ

    // ๊ธฐ๋ณธํ˜•
    
    function ํ•จ์ˆ˜๋ช…() { // ํ•จ์ˆ˜ ์ •์˜๋ฌธ
    	์‹คํ–‰๋ฌธ;
    }
    
    ํ•จ์ˆ˜๋ช…(); // ํ•จ์ˆ˜ ํ˜ธ์ถœ๋ฌธ
    // ์˜ˆ
    
    function test() {
    	document.write("hello");
    }
    
    test();

     

    (2) ์˜ˆ์ œ

    <!DOCTYPE html>
    <html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>๋ฐฐ๊ฒฝ ์ƒ‰ ๋ฐ”๊พธ๊ธฐ</title>
        <script type="text/javascript">
            let color = ["red", "orange", "yellow", "green", "blue", "purple"];
    
            let i = 0; // ๋ณ€์ˆ˜ i์— ์ดˆ๊นƒ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค
    
            // ๋ฐฐ๊ฒฝ์ƒ‰ ํ•จ์ˆ˜(colorBg())๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค
            function colorBg() {
                i++; // ๋ณ€์ˆ˜ i ์— ๋ฐ์ดํ„ฐ๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค
                if (i >= color.length) {
                    i = 0;
                }
    
                // <body> ์š”์†Œ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ๋ณ€์ˆ˜ bodyTag์— ์ฐธ์กฐ์‹œํ‚ต๋‹ˆ๋‹ค
                let bodyTag = document.getElementsByTagName("body")[0];
    
                // ์Šคํƒ€์ผ(CSS)๋ฅผ ์ด์šฉํ•ด <body>์— ๋ฐฐ๊ฒฝ ์ƒ‰์ƒ์ด ๋ฐ”๋€๋‹ˆ๋‹ค.
                bodyTag.style.backgroundColor = color[i];
            }
        </script>
    </head>
    <body>
        <button onclick="colorBg();">๋ฐฐ๊ฒฝ์ƒ‰์„ ๋ฐ”๊ฟ”๋ณด์•„์š”</button>
        
    </body>
    </html>

     

    (3) ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ํ•จ์ˆ˜ ์ •์˜๋ฌธ

    • ๋งค๊ฐœ ๋ณ€์ˆ˜๋ž€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์˜€์„ ๋•Œ ์ „๋‹ฌํ•œ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
    • ์ด๋ ‡๊ฒŒ ์ „๋‹ฌ๋œ ๊ฐ’์€ ํ•จ์ˆ˜ ์ •์˜๋ฌธ ๋‚ด์— ์ผ๋ จ์˜ ์‹คํ–‰๋ฌธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    // ๊ธฐ๋ณธํ˜•
    
    function ํ•จ์ˆ˜๋ช…(๋งค๊ฐœ๋ณ€์ˆ˜1, ๋งค๊ฐœ๋ณ€์ˆ˜2, ... ๋งค๊ฐœ๋ณ€์ˆ˜n) { // ํ•จ์ˆ˜ ์ •์˜๋ฌธ
    	์‹คํ–‰๋ฌธ;
    }
    
    ํ•จ์ˆ˜๋ช…(๊ฐ’1, ๊ฐ’2, ... ๊ฐ’n); // ํ•จ์ˆ˜ ํ˜ธ์ถœ๋ฌธ
    // ์˜ˆ
    
    function test(num1, num2) {
    	document.write(num1 + num2)
    }
    
    test(100, 300);

     

    (3) ์˜ˆ์ œ

    <!DOCTYPE html>
    <html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>์•„์ด๋”” ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธํ•˜๊ธฐ</title>
        <script type="text/javascript">
            function login(id, pw) {
                if (id == "user") { // ๋ฐฉ๋ฌธ์ž๊ฐ€ ์ž…๋ ฅํ•œ id ๊ฐ€ "user"๊ณผ ์ผ์น˜ํ•  ๊ฒฝ์šฐ
                    if (pw == "0000") { // ๋ฐฉ๋ฌธ์ž๊ฐ€ ์ž…๋ ฅํ•œ pwd ๊ฐ€ "0000"๊ณผ ์ผ์น˜ํ•  ๊ฒฝ์šฐ
                        document.write(id + "๋‹˜ ๋ฐฉ๋ฌธ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!");
                    } else { // ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ
                        alert("์ž˜๋ชป๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.");
                    }
                } else { // ๋ฐฉ๋ฌธ์ž๊ฐ€ ์ž…๋ ฅํ•œ id๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ
                    alert("์กด์žฌํ•˜์ง€ ์•Š๋Š” ์•„์ด๋””์ž…๋‹ˆ๋‹ค.");
                }
            }
    
            // ์งˆ์˜ ์‘๋‹ต ์ฐฝ์„ ์ด์šฉํ•ด ๋ฐฉ๋ฌธ์ž์—๊ฒŒ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค
            let user_id = prompt("์•„์ด๋””๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”", "");
            let user_pwd = prompt("ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”", "");
    
            // ๋ฐฉ๋ฌธ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ์•„์ด๋””๋ฅผ ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค
            login(user_id, user_pwd);
        </script>
    </head>
    <body>
        
    </body>
    </html>

    ์•„์ด๋””๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ

     

    ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ
    ๋‘˜ ๋‹ค ์ผ์น˜ํ•  ๊ฒฝ์šฐ

     

    (4) ๋‚ด์žฅ ํ•จ์ˆ˜

    • ๋‚ด์žฅ ํ•จ์ˆ˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์— ๋‚ด์žฅ๋œ ํ•จ์ˆ˜ ์ •์˜๋ฌธ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
    • ํ•จ์ˆ˜ ์ •์˜๋ฌธ์˜ ์„ ์–ธ ์—†์ด ๋‹จ์ง€ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋งŒ์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ์ด๋ฏธ ๋‚ด์žฅ๋œ ํ•จ์ˆ˜๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋‹ค์Œ์€ ๋‚ด์žฅ ํ•จ์ˆ˜๋ฅผ ์ •๋ฆฌํ•œ ํ‘œ์ž…๋‹ˆ๋‹ค.

     

    ์ข…๋ฅ˜ ์„ค๋ช… ์‚ฌ์šฉ ์˜ˆ
    parseInt() ๋ฌธ์žํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ •์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊พผ๋‹ค parseInt("5.12") -> 5
    parseFloat() ๋ฌธ์žํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊พผ๋‹ค parseFloat("5.12") -> 5.12
    String() ๋ฌธ์žํ˜• ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊พผ๋‹ค String(5) -> "5"
    Number() ์ˆซ์žํ˜• ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊พผ๋‹ค Number("5") -> 5
    Boolean() ๋…ผ๋ฆฌํ˜• ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊พผ๋‹ค Boolean(5) -> true
    isNaN() ๋ฐ์ดํ„ฐ์— ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•˜๋ฉด true ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค
    -> is Not a Number?
    isNaN("5-3") -> true
    inNaN("53") -> false
    eval() ๋ฌธ์žํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ํฐ๋”ฐ์˜ดํ‘œ๊ฐ€ ์—†๋Š” ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค eval("15+5") -> 20

     

     

    2. ํ•จ์ˆ˜์—์„œ return ๋ฌธ์˜ ์—ญํ• 

    • ํ•จ์ˆ˜ ์ •์˜๋ฌธ์— return ๋ฌธ์ด ์‚ฌ์šฉ๋˜๋ฉด ๋ฐ˜ํ™˜๊ณผ ์ •์ง€์˜ ์˜๋ฏธ๋ฅผ ๋‹ด์Šต๋‹ˆ๋‹ค.

     

    (1) ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” return ๋ฌธ

    // ๊ธฐ๋ณธํ˜•
    
    function ํ•จ์ˆ˜๋ช…() {
    	์‹คํ–‰๋ฌธ;
    	return ๋ฐ์ดํ„ฐ ๊ฐ’;
    }
    
    let ๋ณ€์ˆ˜ = ํ•จ์ˆ˜๋ช…();
    // ์˜ˆ
    
    function calc() {
    	let result = 100+200;
    	return result;
    }
    
    let num = calc();
    document.write(num);

     

    (1) ์˜ˆ์ œ

    <!DOCTYPE html>
    <html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” return</title>
        <script type="text/javascript">
            function rv(a, b) {
                let num = a * b;
                return num;
            }
    
            let result = rv(2, 5);
    
            document.write(result);
        </script>
    </head>
    <body>
        
    </body>
    </html>

     

    (2) ๊ฐ•์ œ ์ข…๋ฃŒ ์—ญํ• ์„ ํ•˜๋Š” return ๋ฌธ

    // ๊ธฐ๋ณธํ˜•
    
    function ํ•จ์ˆ˜๋ช…() {
    	์‹คํ–‰๋ฌธ1;
    	return;
    	์‹คํ–‰๋ฌธ2; // ์‹คํ–‰๋ฌธ2๋Š” ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
    }
    
    ํ•จ์ˆ˜๋ช… ();

     

    (2) ์˜ˆ์ œ

    <!DOCTYPE html>
    <html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>๊ฐ•์ œ ์ข…๋ฃŒ return</title>
        <script type="text/javascript">
            function funcBye() {
                document.write("์•ˆ๋…•");
                return; // ํ•จ์ˆ˜๋ฅผ ๊ฐ•์ œ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
                document.write("ํ•˜์„ธ์š”");
            }
    
            funcBye();
        </script>
    </head>
    <body>
        
    </body>
    </html>

     

    (3) ์žฌ๊ท€ ํ•จ์ˆ˜ ํ˜ธ์ถœ

    • ์ตœ์ดˆ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํ•จ์ˆ˜ ์ •์˜๋ฌธ ๋‚ด์—์„œ ์‹คํ–‰๋ฌธ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์„ ์žฌ๊ท€ ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
    • ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋ณต๋ฌธ์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    // ๊ธฐ๋ณธํ˜•
    
    function ํ•จ์ˆ˜๋ช…() {
    	์‹คํ–‰๋ฌธ;
        ํ•จ์ˆ˜๋ช…();
    }
    
    ํ•จ์ˆ˜๋ช…();

     

    (3) ์˜ˆ์ œ

    <!DOCTYPE html>
    <html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>์žฌ๊ท€ ํ•จ์ˆ˜ ํ˜ธ์ถœ</title>
        <script type="text/javascript">
            let num = 0;
            function fnc() {
                num++; // num์˜ ๋ฐ์ดํ„ฐ๊ฐ€ 1์”ฉ ์ฆ๊ฐ€๋ฉ๋‹ˆ๋‹ค
                document.write(num, "<br>");
                if (num == 10) {
                    return;
                }
                
                // ์žฌ๊ท€ํ•จ์ˆ˜ ํ˜ธ์ถœ
                fnc(); // fnc ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
            }
    
            fnc(); // fnc ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
        </script>
    </head>
    <body>
        
    </body>
    </html>

     

     

    3. ์ง€์—ญ ๋ณ€์ˆ˜์™€ ์ „์—ญ ๋ณ€์ˆ˜

    • ์ง€์—ญ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ •์˜๋œ ๋ณ€์ˆ˜์ด๋ฉฐ ํ•จ์ˆ˜ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ทธ์™€ ๋ฐ˜๋Œ€๋กœ ์ „์—ญ๋ณ€์ˆ˜๋Š” ํ˜„์žฌ ํŽ˜์ด์ง€ ์–ด๋””์„œ๋“  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    <!DOCTYPE html>
    <html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>์ง€์—ญ ๋ณ€์ˆ˜์™€ ์ „์—ญ ๋ณ€์ˆ˜</title>
        <script type="text/javascript">
            var num = 200; // ์ „์—ญ ๋ณ€์ˆ˜
    
            function fnc() {
                var num = 500; // ์ง€์—ญ ๋ณ€์ˆ˜
            }
    
            fnc(); //ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
    
            document.write(num); // ์ „์—ญ ๋ณ€์ˆ˜ num์˜ 200์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค
        </script>
    </head>
    <body>
        
    </body>
    </html>

    * ํ•จ์ˆ˜ ์‹คํ–‰๋ฌธ ๋‚ด์— ๋‚˜ํƒ€๋‚œ ๋ณ€์ˆ˜ var num ์€ ์ง€์—ญ ๋ณ€์ˆ˜์ด๋ฏ€๋กœ ํ•จ์ˆ˜ ๋ฐ–์—์„œ๋Š” ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

     

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

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

    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ ์ •๋ฆฌ๋Š” ํ•จ์ˆ˜๊ฐ€ ๋งˆ์ง€๋ง‰์ž…๋‹ˆ๋‹ค.

     

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

    ๋Œ“๊ธ€