본문 바로가기

프로그래밍/JavaScript

JavaScript_함수

함수 선언 (함수 정의)

: function 예약어를 사용하고, { }안에 실행해야 할 명령어를 작성

함수 선언시 주의해야 할 것 !

함수 호출 시 HTML 요소 중 렌더링이 완료되기 전에 호출하는 코드를 실행한다면 요소를 찾을 수 없어 오류가 발생한다. 

 

 

함수 호출 (함수 실행)

: 함수 이름을 사용해서 함수를 실행

 

 

let과 const

let - 프로그램 안에서 값이 변할 수 있는 변수

const - 프로그램 안에서 값이 변하지 않는 상수

 

 

매개변수(parameter)와 인수(argument) 차이점 

매개변수 (parameter)
- 함수를 실행하기 위해 필요하다고 지정하는 값
- 함수를 선언할 때 함수 이름 옆의 괄호 안에 매개변수 이름을 넣음
function addNumber(a, b) { // 매개변수
    let sum = a + b;
    return sum;
}

인수 (argument)
- 함수를 실행하기 위해 필요하다고 지정하는 값
- 함수를 실행할 때 매개변수로 넘겨주는 값
addNumber(12, 10); // 인수

 

 

익명 함수

: 이름이 없는 함수

함수 자체가 표현식(Expression)이기 때문에 함수를 변수에 할당하거나 함수의 매개변수로 사용할 수 있음. (일급 객체)

 

익명 함수 예제

// 익명 함수
// 이름 없음.
<script>
    let add = function(a, b) {
        return a + b;
    }
    
    console.log(add); // add 함수 자체가 출력
    console.log(add(10, 10)); // 20
</script>

 

 

즉시 실행 함수

: 정의되자마자 즉시 실행되는 함수

<script>
    // 즉시 실행 함수 (괄호로 감쌈)
    let result2 = (function() {
        return 10 + 10;
    })();
    
    console.log(result2); // 20
    // 에러 즉시 실행 함수가 실행되었기 때문에 result2는 함수식이 아니라 변수에 값이 담긴 상태
    // console.log(result2());
</script>

<script>
    // 즉시 실행 함수에 매개변수와 인수를 사용하여 코드를 작성하기
    const result = (function(a, b) {
        return a + b;
    })(100, 200);
    
    console.log(result); // 300
</script>

 

 

화살표 함수

ES6 이후 버전에서 '=>' 표기법을 사용해 함수 선언을 간단하게 작성 (자바의 람다식과 흡사)

<script>
    // 익명 함수
    const hi = function() {
        return "반갑";
    }
    console.log(hi); // 표현식 출력
    console.log(hi()); // 반갑 출력
    
    
    const hi2 = () => {
        return "옹";
    }
    console.log(hi2);
    console.log(hi2());
    
    /*
      화살표 함수를 사용할 때 리턴 키워드 생략 여부
      const hi2 = () => {return "옹"}
      const hi2 = () => "옹";
      
      매개변수가 있는 경우
      let sum = (a, b) => a + b;
      
      !!! 화살표 함수를 쓸 때 return 키워드를 사용하면 반드시 { }를 붙여줘야 함.
    */
    
    // 매개변수가 있는 경우
    let sum = (a, b) => a + b;
    console.log(sum(1, 1));
</script>

화살표 함수를 사용할 때 리턴 키워드를 사용하면 반드시 { }를 붙여줘야 함.

 

 

함수 사용 예제

<body>
    <div>
        <label for>원래 가격 : </label>
        <input type="text" id="originPrice"> 원
    </div>
    <div>
        <label for>할인율 : </label>
        <input type="text" id="rate"> %
    </div>
    <button onclick="showPrice()">할인된 가격 계산</button>
    
    <script>
        function showPrice() {
            // .value : input 태그의 값(value) 갖고 옴
            let originPrice = document.querySelector("#originPrice").value;
            let rate = document.querySelector("#rate").value;
            
            let calcPrice = originPrice * (rate / 100);
            let resultPrice = originPrice - calcPrice;
            
            // 백틱 ` 을 이용해서 간편하게 값을 가져올 수 있다.
            // 숫자 + "문자"
            // innerHTML : 이 요소 안에 HTML을 넣고 싶다면
            document.querySelector("#showResult").innerHTML = 
            `상품의 원래 가격은 ${originPrice}이고, 할인율은 ${rate}%입니다.
            할인된 금액은 ${calcPrice}원을 적용하여, ${resultPrice}에 구매 가능합니다.";
        }
    </script>
    
    <!-- 파싱의 순서에 따라 버튼을 버튼을 누르면 실행이 되기에 밑에 써도 됨 -->
    <div id="showResult"></div>
</body>

→ 백틱 ` 을 이용해 쉽게 사용 가능 

'프로그래밍 > JavaScript' 카테고리의 다른 글

JavaScript_객체  (0) 2023.05.07
JavaScript_이벤트  (0) 2023.05.07
JavaScript_자료형  (0) 2023.05.07
JavaScript_컴파일러 VS 인터프리터  (0) 2023.05.07
JavaScript_.querySelector와 .innerHTML  (0) 2023.05.07