ํ•จ์ˆ˜

๊ธฐํ˜ยท2023๋…„ 2์›” 28์ผ

Javascript ํ•™์Šต

๋ชฉ๋ก ๋ณด๊ธฐ
4/15

day07

๐Ÿ“Œ ํ•จ์ˆ˜๋ž€?

  • ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ์€ ํ•จ์ˆ˜์˜ ์ •์˜(์„ ์–ธ๊ณผ) ๊ณผ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๋กœ ๋‚˜๋‰œ๋‹ค.

  • ํ•จ์ˆ˜์˜ ์ •์˜(์„ ์–ธ)๋ฐฉ๋ฒ•

    	function ํ•จ์ˆ˜์ด๋ฆ„(){
    		... ์‹คํ–‰ํ•  ๊ตฌ๋ฌธ..
    	}
  • ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐฉ๋ฒ•

    	ํ•จ์ˆ˜์ด๋ฆ„();

๐Ÿ“ข ํ•จ์ˆ˜ ๊ธฐ๋ณธ ์˜ˆ์ œ

: ํ•จ์ˆ˜์˜ ์„ ์–ธ ๋ฐฉ๋ฒ•

<script>
        // ํ•จ์ˆ˜์˜ ์„ ์–ธ
        function sayHello(){
            document.write("<h1>์•ˆ๋…•ํ•˜์„ธ์š”</h1>")
            document.write("<h1>์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ</h1>")
        }

        // ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ (์—ฌ๋Ÿฌ๋ฒˆ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
        sayHello();
        sayHello();
        sayHello();
    </script>

๐Ÿ’ก ๊ฒฐ๊ณผ๊ฐ’

๐Ÿ“Œ ํŒŒ๋ผ๋ฏธํ„ฐ(Parameters)

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ํ•จ์ˆ˜์˜ ์ด๋ฆ„๋’ค์— ์œ„์น˜ํ•œ
    ๊ด„ํ˜ธ() ์•ˆ์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ธฐ์ˆ ํ•œ๋‹ค.

    function ํ•จ์ˆ˜์ด๋ฆ„(ํŒŒ๋ผ๋ฏธํ„ฐ){
    	.. ์‹คํ–‰ํ•  ๊ตฌ๋ฌธ..
    }
  • ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์žˆ๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ

    	ํ•จ์ˆ˜์ด๋ฆ„(ํŒŒ๋ผ๋ฏธํ„ฐ);

๐Ÿ“ข ํ•จ์ˆ˜ ๊ธฐ๋ณธ ์˜ˆ์ œ (2)

: (x) ๊ฐ’๋งŒ ์žˆ๋Š” ํ•จ์ˆ˜

	<script>
        function f(x){
            var y = x + 1;
            document.write("<h1>" + y + "</h1>")
        }

        f(2); // 2 + 1 = 3
        f(3); // 3 + 1 = 4
        f(10); // 10 + 1 = 11
    </script>

๐Ÿ’ก ๊ฒฐ๊ณผ๊ฐ’

๐Ÿ“Œ ๋‹ค์ค‘ํŒŒ๋ผ๋ฏธํ„ฐ

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜์˜ ๋‹ค์ค‘ ํŒŒ๋ผ๋ฏธํ„ฐ

    	function ํ•จ์ˆ˜์ด๋ฆ„(ํŒŒ๋ผ๋ฏธํ„ฐ1, ํŒŒ๋ผ๋ฏธํ„ฐ2){
    		... ์‹คํ–‰ํ•  ๊ตฌ๋ฌธ..
    	}
  • ๋‹ค์ค‘ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์žˆ๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ

    	ํ•จ์ˆ˜์ด๋ฆ„(ํŒŒ๋ผ๋ฏธํ„ฐ1, ํŒŒ๋ผ๋ฏธํ„ฐ2, ...);

๐Ÿ“ข ํ•จ์ˆ˜ ๊ธฐ๋ณธ ์˜ˆ์ œ (3)

	<script>
        function f(x,y) {
            var z = x + y;
            document.write("<h1>" + z + "</h1>")
        }

        f(2 , 1);
        f(5,  7);
        f(20, 10);
    </script>

๐Ÿ’ก ๊ฒฐ๊ณผ๊ฐ’

๐Ÿ“Œ ๋ฆฌํ„ด๊ฐ’

  • ๊ฒฐ๊ณผ๊ฐ’ ๋˜๋Œ๋ ค ์ฃผ๋Š” ๊ฐ’

    	function f(x){
    		return x + 1;
    	}
  • ํ˜ธ์ถœ

    	var y = f(5);

๐Ÿ“ข ํ•จ์ˆ˜ ๊ธฐ๋ณธ ์˜ˆ์ œ (4)

<script>
        // ํ•จ์ˆ˜์„ ์–ธ
        function f(x, y){
            var z = x + y;

            // ์กฐ๊ฑด (10๋ณด๋‹ค ์ž‘์œผ๋ฉด ๋๋‚ด๊ณ  10๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด ๋‹ค์‹œ ๋ฆฌํ„ดํ•จ)

            if( z < 10) {
                return;
            }

            return z;
        }

        // ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ
        var a = f(2, 1);
        var b = f(5, 7);
        var c = f(10, 5);


        document.write("<h1>" + a + "</h1>"); // if๋ฌธ์—์„œ ๋๋‚ฌ๊ธฐ๋•Œ๋ฌธ์— ๊ฐ’์ด ์˜ค์ง€ ์•Š์•„ undefined๊ฐ’ ์ถœ๋ ฅ
        document.write("<h1>" + b + "</h1>");
        document.write("<h1>" + c + "</h1>");
    </script>

๐Ÿ’ก ๊ฒฐ๊ณผ๊ฐ’

๐Ÿ“Œ ํ•จ์ˆ˜์˜ ์‹คํ–‰ ์ค‘๋‹จ

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜๋Š” ์ฒ˜๋ฆฌ ๋„์ค‘ return ๋ฌธ์„
    ๋งŒ๋‚˜๊ฒŒ ๋˜๋ฉด ๊ทธ ์ฆ‰์‹œ ์‹คํ–‰์„ ์ค‘๋‹จํ•œ๋‹ค.
  • ์ด๋Ÿฌํ•œ ํŠน์„ฑ์„ ์ด์šฉํ•˜์—ฌ ํŠน์ • ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜์ง€
    ์•Š์„ ๊ฒฝ์šฐ ๋“ฑ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ์ค‘๋‹จ์„ ๋ชฉ์ ์œผ๋กœ
    return ๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฆฌํ„ด๊ฐ’ ์—†์ด ์ฒ˜๋ฆฌ๋ฅผ ์ค‘๋‹จํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” returun ํ‚ค์›Œ๋“œ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ด๋•Œ, ๊ฐ’์ด ์—†์ด ๋ฆฌํ„ด ๊ฒฐ๊ณผ๋ฅผ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•œ ๊ฒฝ์šฐ, ์ •์˜๋˜์ง€ ์•Š์€ ๊ฐ’์ธ "undefined"๊ฐ€ ๋Œ€์ž…๋œ๋‹ค.

๐Ÿ“ข ํ•จ์ˆ˜ ๊ธฐ๋ณธ ์˜ˆ์ œ (5)

	<script>
        function sum(x, y){
            var z = x + y;
            return z;
        }

        function printResult(x, y){
            var result = sum(x , y);
            document.write("<h1>" + result + "</h1>" );
        }

        printResult(7, 10);
    </script>

๐Ÿ“Œ ํ•จ์ˆ˜๊ฐ„์˜ ํ˜ธ์ถœ

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋„ ์–ด๋–ค ํ•จ์ˆ˜ ์•ˆ์—์„œ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ˜„์žฌ ํ•จ์ˆ˜ ์•ˆ์—์„œ ํ˜ธ์ถœํ•œ ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ๋ฆฌํ„ด๊ฐ’์„
    ํ˜„์žฌ ํ•จ์ˆ˜ ์•ˆ์—์„œ ๋‹ค๋ฅธ ๊ณ„์‚ฐ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“ข ํ•จ์ˆ˜ ๊ธฐ๋ณธ ์˜ˆ์ œ - Numbering (6)

   	<script>
        /*
            function numbering(){ .. }
        */
       // numbering ์ด๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ํ•จ์ˆ˜๋ฅผ ๊ฐ–๊ฒŒ๋œ๋‹ค.
        let numbering = function(){
            let i = 0;
            while ( i < 10){
                document.write(i);
                i += 1;
            }
        }

        numbering();
    </script>

๐Ÿ’ก ๊ฒฐ๊ณผ๊ฐ’

๐Ÿ“ข ํ•จ์ˆ˜ ๊ธฐ๋ณธ ์˜ˆ์ œ - ์ต๋ช…ํ•จ์ˆ˜ (7)

	<script>
        // ์ต๋ช…ํ•จ์ˆ˜
        // ์ผํšŒ์„ฑ ํ˜ธ์ถœ
        (function(){
            let i = 0;
            while (i<10){
                document.write(i);
                i +=1;
            }
        })();
    </script>

๐Ÿ’ก ๊ฒฐ๊ณผ๊ฐ’

๐Ÿ“ข ํ•จ์ˆ˜ ๊ธฐ๋ณธ ์˜ˆ์ œ - ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ (8)

	<script>
        /*
          ํ™”์‚ดํ‘œ ํ•จ์ˆ˜
          - ํ•จ์ˆ˜ ํ‘œํ˜„์‹๋ณด๋‹ค ๋‹จ์ˆœํ•˜๊ณ  ๊ฐ„๊ฒฐํ•œ ๋ฌธ๋ฒ•์œผ๋กœ
          ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. 
          
          ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•
        -  () => { .... }
                : ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ
        -   x => { ... }
                : ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํ•œ ๊ฐœ์ธ ๊ฒฝ์šฐ, ์†Œ๊ด„ํ˜ธ
                ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.
        - (x, y ) => {...}
                : ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ ์†Œ๊ด„ํ˜ธ
                ๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์—†๋‹ค.
            
        ํ•จ์ˆ˜ ๋ชธ์ฒด ๋ถ€๋ถ„
        - x => { return x *  x}
        - x => x * x
            : ํ•จ์ˆ˜ ๋ชธ์ฒด๊ฐ€ ํ•œ์ค„์˜ ๊ตฌ๋ฌธ์ด๋ผ๋ฉด ์ค‘๊ด„ํ˜ธ๋ฅผ
            ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์•”๋ฌต์ ์œผ๋กœ return๋œ๋‹ค.
        - () = > {
                const x = 10;
                return x;
        }
        */
       // ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ
       let foo = () => { console.log('foo function')}
       foo();

       // ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜์ธ ๊ฒฝ์šฐ
       let foo2 = x => document.write(x);
       foo2('user');

       let sayHi = () => alert("์•ˆ๋…•ํ•˜์„ธ์š”");
       sayHi();
    </script>

๐Ÿ’ก ๊ฒฐ๊ณผ๊ฐ’

๋‹ค์Œ ์ถœ๋ ฅ๊ฐ’

๐Ÿ“ข ํ•จ์ˆ˜ ๊ธฐ๋ณธ ์˜ˆ์ œ - ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ (9)

<script>
        // ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ
        let user = (a,b) => a + b;

        document.write(user(1,3));

        document.write('<br>');
        let user2 = (a, b) => {return a + b}
        document.write(user2(3,4));

        document.write('<br>');
        let user3 = (a, b) => {return a + b}
        document.write(user2(8,4));

        document.write('<br>');
        let user4 = (a, b) => {
            let c = 3;
            return a + b + c;
        }
        document.write(user4(10,11));

        document.write('<br/>');
        let user5 = n => n*2;
        /*
        function user5(n){
            return n * 2;
        }
        */
       document/write(user5(3));
     </script>

๐Ÿ’ก ๊ฒฐ๊ณผ๊ฐ’

๐Ÿ“ข ํ•จ์ˆ˜ ๊ธฐ๋ณธ ์˜ˆ์ œ (10)

<script>
        let age = prompt("๋‚˜์ด๋ฅผ ์•Œ๋ ค์ฃผ์„ธ์š”", 18);

        let welcome = (age < 18 ) ? 
        () => alert ('์•ˆ๋…•') : 
        () => alert ('์•ˆ๋…•ํ•˜์„ธ์š”');

        welcome();
    </script>

๐Ÿ’ก ๊ฒฐ๊ณผ๊ฐ’

18์‚ด๋ณด๋‹ค ๋†’์„์‹œ

18์‚ด๋ณด๋‹ค ๋‚ฎ์„์‹œ

๐Ÿ“ข ํ•จ์ˆ˜ ๊ธฐ๋ณธ ์˜ˆ์ œ (11)

	<script>
        function confirmFun(){
            if( confirm("ํ™•์ธ(์˜ˆ) ๋˜๋Š” ์ทจ์†Œ(์•„๋‹ˆ์˜ค)๋ฅผ ์„ ํƒํ•ด ์ฃผ์„ธ์š”") ){
                alert("ํ™•์ธ(์˜ˆ)์„ ๋ˆŒ๋ฅด์…จ์Šต๋‹ˆ๋‹ค");
            } else {
                alert("์ทจ์†Œ(์•„๋‹ˆ์˜ค)๋ฅผ ๋ˆŒ๋ฅด์…จ์Šต๋‹ˆ๋‹ค");
            }
        }

        confirmFun();
  </script>

๐Ÿ’ก ๊ฒฐ๊ณผ๊ฐ’
์ฒ˜์Œ ์ถœ๋ ฅ

์˜ˆ ๋ˆŒ๋ €์„์‹œ

์ทจ์†Œ ๋ˆŒ๋ €์„์‹œ

๐Ÿ“ข ํ•จ์ˆ˜ ๊ธฐ๋ณธ ์˜ˆ์ œ (12)

<script>
        /*
            ์ต๋ช…ํ•จ์ˆ˜
                function(){....}
                () => {....}
            
            1. ๊ธฐ๋Šฅ ๊ตฌํ˜„
            2. function() ์ต๋ช…ํ•จ์ˆ˜
            3. () => ์ต๋ช…ํ•จ์ˆ˜
        */
        
        function ask(question, yes, no){
            if( confirm(question)){ // ํ™•์ธ
                yes();
            } else { //์ทจ์†Œ
                no();
            }
        }

        ask('๋™์˜ํ•˜์‹ญ๋‹ˆ๊นŒ?',
            function(){alert('๋™์˜ํ•˜์…จ์Šต๋‹ˆ๋‹ค.')},
            function(){alert('์ทจ์†Œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์…จ์Šต๋‹ˆ๋‹ค.');});
    </script>

๐Ÿ’ก ๊ฒฐ๊ณผ๊ฐ’

ํ™•์ธ ๊ฒฐ๊ณผ

์ทจ์†Œ ๊ฒฐ๊ณผ

๐Ÿ“ข ํ•จ์ˆ˜ ๊ธฐ๋ณธ ์˜ˆ์ œ (13)

<script>
        /*
            ์ต๋ช…ํ•จ์ˆ˜
                function(){....}
                () => {....}
            
            1. ๊ธฐ๋Šฅ ๊ตฌํ˜„
            2. function() ์ต๋ช…ํ•จ์ˆ˜
            3. () => ์ต๋ช…ํ•จ์ˆ˜
        */
        
        function ask(question, yes, no){
            if( confirm(question)){ // ํ™•์ธ
                yes();
            } else { //์ทจ์†Œ
                no();
            }
        }

        ask('๋™์˜ํ•˜์‹ญ๋‹ˆ๊นŒ?',
            () => alert("๋™์˜ํ•˜์…จ์Šต๋‹ˆ๋‹ค."),
            () => alert("์ทจ์†Œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์…จ์Šต๋‹ˆ๋‹ค."));
    </script>

๊ฒฐ๊ณผ๊ฐ’์€ 12์™€ ๊ฐ™๋‹ค.

profile
โญ๏ธ๋‚ด๊ฐ€๋งŒ๋“ ์ฟ ํ‚คโญ๏ธ

0๊ฐœ์˜ ๋Œ“๊ธ€