본문 바로가기

JavaScript

15장 - 익명 함수/ 즉시 실행 함수/ 화살표 함수

1. 익명 함수 

 

 - 이름이 없는 함수 

 - 익명함수는 함수 자체가 식(expression)이므로 함수를 변수에 할당할 수 있으며, 

또한 다른 함수의 매개변수로 사용 가능

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>익명함수 실행하기</title>
</head>
<body>
  <script>
    var sum = function(a,b)
    {
      //익명함수를 선언한 후 변수 sum에 할당
      return a+b;
    }
    document.write("함수 실행 결과:"+sum(10,20));
  </script>
</body>
</html>

 

2. 즉시 실행 함수 

 

 - 한번만 실행하는 함수라면 함수를 정의하면서 동시에 실행 가능

 - 함수를 실행하는 순간에 자바스크립트 해석기에서 함수를 해석

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>즉시 실행 함수 만들기 </title>
  <style>
    body {
      padding-top: 20px;
      text-align:center;
    }

    .accent {
      font-weight:bold;
      font-size:1.2em;
      color:blue;
    }
  </style>
</head>
<body>
  <script>
    (function() {
      var userName = prompt("이름을 입력하세요.");
      document.write("안녕하세요? <span class='accent'>" + userName + "</span>님!");
    }());
  </script>
</body>
</html>

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>매개변수가 있는 즉시 실행 함수 만들기 </title>
</head>
<body>
  <script>
    (function(a,b) { //매개변수
      sum = a+b;
    }(100,200)); //인수
    document.write("함수 실행 결과:" +sum);
  </script>
</body>
</html>

 

3. 화살표 함수 

 

 - 익명함수에서만 사용가능

 - (매개변수) => {함수 내용}

 

 - 매개변수가 없는 경우 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>매개변수가 없는 화살표 함수   </title>
</head>
<body>
  <script>
   const hi= () => {return "안녕하세요?"};
   /*const hi= function() {
      return "안녕하세요?";
   }*/
   /* 중괄호 생략
    const hi= () =>"안녕하세요?";
    */
   alert(hi());
  </script>
</body>
</html>

 

 

- 매개변수가 1개인 경우

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>매개변수가 1개인 화살표 함수 </title>
</head>
<body>
  <script>
   const hi= user => {document.write(user +"님 안녕하세요!")};

   var user1=prompt("이름을 입력하시오:");
   hi(user1);
  </script>
</body>
</html>

 

- 매개변수가 2개인 경우

 

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>매개변수가 2개인 화살표 함수</title>
</head>
<body>
  <script>
   let sum = (a,b) => a + b;

   /*
   let sum= function(a,b) {
    return a+b;
   } */

   var num1 = parseInt(prompt("첫번째 숫자를 입력하시오"));
   var num2 = parseInt(prompt("두번째 숫자를 입력하시오"));

   document.write(num1+"과"+num2+"를 더한 값은" + sum(num1,num2) + "이다.");
  </script>
</body>
</html>

'JavaScript' 카테고리의 다른 글

15장 실습 2  (0) 2023.04.07
15장 - 이벤트와 이벤트 처리기  (0) 2023.04.07
15장 실습  (0) 2023.04.07
15장 - 재사용할 수 있는 함수 만들기  (0) 2023.04.07
15장 - let과 const  (0) 2023.04.07