728x90
반응형
    <link rel="stylesheet" href=".css">
    <script src=".js"></script>
 
   
css, js
var color =["green", "aqua", "blue", "black"]
var i = 0;
function changeColor(){
    i++; //1
    if(i>=color.length) i = 0;
    var bgColor = document.getElementById("bgCol");
    bgColor.style.backgroundColor = color[i];
    var pColor = document.getElementsByTagName("p")[0];
    pColor.style.color ="white";
    var hColor = document.getElementsByTagName("h2")[0];
    hColor.style.color ="white";
}

function bgWhite(){
    var bgColor = document.getElementById("bgCol");
    bgColor.style.backgroundColor = "white";
    var pColor = document.getElementsByTagName("p")[0];
    pColor.style.color ="black";
    var hColor = document.getElementsByTagName("h2")[0];
    hColor.style.color ="black";
}​
body {
    margin: 0;
    padding: 0;
}
<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <title>function with css,js</title>
    <link rel="stylesheet" href="function04.css" />
    <script src="function04.js"></script>
  </head>
  <body id="bgCol">
    <div style="margin-left: 20px">
      <h2>JavaScript Functions</h2>
      <p>색상을 변경해보세요.</p>
      <button onclick="changeColor()">색상 변경</button>
      <button onclick="bgWhite()">초기값으로</button>
    </div>
  </body>
</html>
ㅁㄴㄹ
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>생성자 함수와 자동호출 함수</title>
    <style>
        .pClass {font-weight : bolder;}
    </style>
</head>
<body>
    <h2>JavaScript Functions</h2>
    <p class="pClass">자바스크립트에서는 함수 생성자를 통하여 함수를 생성할 수 있다.</p>
    <p id="demo"></p>


    <p class="pClass">자바스크립트에서는 자동 호출 함수를 이용하여 호출하지 않아도 생성할 수 있다.</p>
    <p id= "demo2"></p>

    <script>
        const myFunction = new Function("a", "b","return a * b");
        // const myFunction = function (a, b) {
        //     return a * b;
        // }

        document.getElementById("demo").innerHTML
        = "myFunction(4,3)호출 결과: " + myFunction(4, 3);

        // 익명 함수 선언 및 실행 : 즉시실행함수
        // 익명 함수 뒤에 또 다른 ()소괄호를 기술하면 실행됨.
        (function (a,b) {
            document.getElementById("demo2").innerHTML
            = "자동호출 함수 실행 " + a + b ;
        })("값은: ", 1);

        // 자바스크립트의 즉시실행함수 형식 : 
        // (function(매개변수 기술...) {실행코드 기술; ...})(매개변수갯수만큼 기술);

    </script>

</body>
</html>​

arguments

 
함수를 호출할 때 매개인자의 정보를 배열로 저장하는 객체
arguments[인덱스번호]
arguments = [ 4, 5, 6 ]
 

 

arguments
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>arguments객체</title>
    <script>
      function fnc() {
        document.write("fnc()호출");
      }
      function fnc(a) {
        document.write("fnc(a)호출: ", a);
      }
      function fnc(a, b) {
        document.write("fnc(a,b)호출: ", a, ", ", b, "<br>");
      }

      fnc();
      fnc(1);
      fnc(5, 3);
      //자바스크립트에서는 함수 오버로딩이 되지 않기에 
      //매개변수갯수가 다르더라도 마지막에 기술된 함수를 호출한다.
    </script>
  </head>
  <body>
    <h2>arguments객체</h2>
    <p>자바스크립트 함수의 내장객체이며, 매개변수의 정보를 가지고 있다.</p>

    <p id="demo"></p>
    <p id="demo2"></p>
    <script>
      // arguments : 함수를 호출할때 매개인자의 정보를 배열로 저장하는 객체
      // 자바스크립트에서 제공하는 내장 객체
      function myFunction(a, b) {
        return (
          "0번째 매개변수의 값은 " +arguments[0] +"이며, 총 매개변수의 개수는 " +
          arguments.length +"개이다.");
      }
      document.getElementById("demo").innerHTML = myFunction(4, 3);
      // arguments = [4,3]

      // 함수의 매개변수를 일치시키지 않아도 arguments객체를 통해
      // 해당 매개변수를 가져올 수 있다.

      function findMax() {
        // arguments= [4,5,6];
        // Infinity : 양의 무한대 값을 나타내는 숫자형 값
        // -Infinity : 음의 무한대 값을 나타내는 숫자형 값

        let max = -Infinity;
        for (let i = 0; i < arguments.length; i++) {
          console.log(arguments[i]);
          if (arguments[i] > max) max = arguments[i];
        }
        return max;
      }
      // arguments = [4,5,6];
      document.getElementById("demo2").innerHTML = findMax(4, 5, 6);
    </script>
  </body>
</html>​

 

arguments
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>argument</title>
</head>
<body>
    <h1>함수의 오버로딩</h1>
    <script>
        function addNum(x) {return x;}
        function addNum(x, y, z) {return x + y + z;}
        function addNum(x, y) {return x + y;}

        document.write("인수가 3개 모두 전달되면 반환값은 " + addNum(1, 2, 3) + "입니다.<br>")
        document.write("인수가 2개만 전달되면 반환값은 " + addNum(1, 2) + "입니다.<br>")
        document.write("인수가 1개만 전달되면 반환값은 " + addNum(1) + "입니다.<br>")
        document.write("인수가 아무것도 전달되지 않으면 반환값은 " + addNum() + "입니다.")

        function sum(){
            var result = 0; //10 ->30
            for (var i = 0; i < arguments.length; i++){
                // result = result + arguments[i];
                result += arguments[i];
            }
            return result;
        }
        console.log("arguments객체를 이용한 오버로딩 처리");
        console.log("인수가 2개(10,20)인 함수 호출 결과: " + sum(10,20));
        console.log("인수가 3개(10,20,30)인 함수 호출 결과: " + sum(10,20,30));
        console.log("인수가 4개(10,20,30,40)인 함수 호출 결과: " + sum(10,20,30,40));
        console.log("인수가 5개(10,20,30,40,50)인 함수 호출 결과: " + sum(10,20,30,40,50));
    </script>
</body>
</html>​
728x90
반응형

'[JS]' 카테고리의 다른 글

[JS] function - object자료형, event handler(onload,onchange,onclink,onsubmit)  (0) 2024.02.28
[JS] toString(), arrow()  (0) 2024.02.28
[JS] function1  (0) 2024.02.28
[JS] array  (0) 2024.02.27
[JS] continue  (0) 2024.02.27

+ Recent posts