본문 바로가기
Fiori/UI5

[JavaScript] 함수와 매개변수

by clode 2023. 3. 6.
728x90
반응형

함수 Function

함수는 문장을 캡슐화하여 어디서든, 언제든 실행할 수있게 해준다.

function 펑션이름(매개변수) {for, if, switch, while...}

  • 매개변수 갯수는 정해져 있지 않다. 하나든, 여러개든 사용 가능하다.
  • 펑션마지막에 펑션이름(); 하면 펑션에 값없어도 실행할수 있게 한다.
  • return키워드 있는경우 펑션실행한값 바로 변수에 넣어줄수있다
  • 실행할때 값을 넣어주면 매개변수에 바로 값 넣어준다
//return값이 없는 함수
      function sayHi(name, message) {
        alert("저는 " + name + "입니다. " + message);        //alert 알림창
      }
      sayHi("니언","반갑습니다");
//return값이 있는 함수
      function sayHi(name, message) {
        alert("저는 " + name + "입니다. " + message);        //alert 알림창
        return "어" + name;
      }
      var sReturnValue = sayHi("니언","반갑습니다");
        alert(sReturnValue);
  function sum(num1, num2) {
        return num1 + num2;
      }
      document.write(sum(2,3));  

실행시 값 넣어주면 매개변수에 값 바로 넣어준다. var iSumData = sum(2,3); 이렇게 사용해도 된다.

      function onSave(oSaveParam) {
        if( !oSaveParam.seq ) {
          return;
        }
        document.write("seq가 " + oSaveParam.seq + "인 데이터가 저장되었습니다.");
      }
      document.write(onSave({seq: 1}));

실행시 객체 값을 매개변수에 보낸다. seq가 값이 있으면 write문 타고 없으면 return 탄다.

실습

  <body>
    <div>
      <span>이름: </span>
      <input type="text" id="name" />
    </div>
    <div>
      <span>비밀번호: </span>
    <input type="password" id="password" />
    </div>
    <button onclick="onSave2();">저장</button>    <!--버튼을 클릭하면 실행한다-->
    <script type="text/javascript">
      function onSave2() {
        var sName = document.querySelector("#name").value;    //입력한값 들어간다
        var sPassword = document.querySelector("#password").value;
        if ( !sName.trim() ) {        //sName.trim === "", trim:문자의 양옆 빈공간을 없애준다(중간공간x)
          alert("이름을 입력해주십시오.");
        }
        else if ( !sPassword ) {
          alert("비밀번호를 입력해주십시오.");
        }
        else if ( sName && sPassword ) {
          alert(sName + "님 반갑습니다.");
        }}
    </script>
  </body>

매개변수

함수는 매개변수 숫자를 따지지 않으며 데이터 타입도 체크하지 않는다. 함수에서 매개변수를 두개 받도록 만들었더라도 반드시 매개변수 두 개를 넘겨야 하는 건 아니고, 매개변수를 한개, 세개, 또는 아에 넘기지 않더라도 인터프리터는 이를 에러로 간주하지 않는다.
이렇게 되는 이유는 매개변수가 내부적으로는 유사배열로 표현되기 때문이다.

<script>
      function testParamFun(sParam1, sParam2) {
        document.write("sParam1 = " + sParam1 + "<br/>");
        document.write("sParam2 = " + sParam2 + "<br/>");
        document.write("=====argument=====<br/>");
        console.log(arguments);
        document.write("<br/><br/><br/>");
      }

      testParamFun();
      testParamFun("3", "b");
      testParamFun("a", true, "c");
</script>

parameter로 아무값도 넘기지 않았기 때문에 sParam1, sParam2 의 값이 초기화가 되지 않아서 undefined가 반환된다.

728x90
반응형

'Fiori > UI5' 카테고리의 다른 글

[JavaScript] 배열 Array  (0) 2023.03.06
[JavaScript] 원시값과 참조값  (0) 2023.03.06
[JavaScript] 제어문  (0) 2023.03.06
[JavaScript] 연산자  (0) 2023.03.06
[JavaScript] 형변환 내장함수  (0) 2023.03.06

댓글