본문 바로가기
Study/JavaScript

[JavaScript] 함수, 계산기 만들기

by YoungD 2024. 1. 25.

 

함수 선언

어디서든 호출 가능

함수 선언은 다음과 같은 함수 키워드로 구성

  • 함수의 이름
  • 함수의 매개변수들, 괄호로 묶고 쉼표로 구분
  • 함수를 선언하는 JavaScript 문으로 중괄호로 묶는다 { /* ... */ }
 
        function greet(name){
            console.log(`안녕하세요 저는 ${name}입니다.`);
        }
 
        greet('youngD');    인자를 파라미터에 전달 -> 입력된 매개변수를 활용
 
 

 

greet 이라는 간단한 함수 정의

greet() 함수에 정의된 매개변수는 name에 저장

 

함수선언문은 코드를 구현한 위치와 관계없이 자바스크립트의 특징인 호이스팅에 따라 브라우저가 자바스크립트를 해석할 때 맨 위로 끌어 올려진다.(= 선언 전에 호출돼도 정상 동작)

 

 

 

 
    <script>

        // 두 숫자를 연산하여 결과값을 출력하는 sum()함수 구현
 
        function sum(num1, num2){
            console.log(`${num1}${num2}의 더한 결과 : ${num1+num2}`);
        }
        // 함수 호출
        sum(4, 8);
 
 
        function sum2(num3, num4){
            return num3+num4;
        }
 
        // 반환 값을 사용하려면 아래와 같이 사용할 수 있다.
 
        console.log(sum2(5,8));
 

        let result = sum2(5,10);
        console.log(`더한 결과 : ${result}`);
 
    </script>
 

 

 

 

 

 
    <script>

        function sum2(num3, num4){
            return num3+num4;
        }
        // 반환 값을 사용하려면 아래와 같이 사용할 수 있다.
        console.log(sum2(5,8));
 

        let result = sum2(5,10);
        console.log(`더한 결과 : ${result}`);
 
    </script>
 

 

 

 

 

< 계산기 만들기>

 

 
    <script>
        let num1 = parseInt(prompt('첫 번째 숫자 입력 : '));
        let num2 = parseInt(prompt('두 번째 숫자 입력 : '));
        let op = prompt('연산할 기호 입력 : ');

        function calculator(num1,num2,op){
            if(op === '+'){
                console.log(num1+num2);
            }else if(op === '-'){
                console.log(num1-num2);
            }else if(op === '*'){
                console.log(num1*num2);
            }else if(op === '/'){
                console.log(num1/num2);
            }else{
                console.log('잘못된 연산자 입력');
            }
        }

        calculator(num1,num2,op);
 
    </script>
 

 

 

 

 

함수표현식

함수 선언식은 호이스팅에 영향을 받지만, 함수 표현식은 호이스팅에 영향을 받지 않는다.

유효범위: 함수 블록 { } 안에서 유효

함수 내에서 아래쪽에 존재하는 내용 중 필요한 값들만 끌어올리는 것

var 변수 선언과 함수선언문에서만 호이스팅이 일어난다

var 변수/함수의 선언만 위로 끌어 올려지며, 할당은 끌어 올려지지 않는다.

let/const 변수 선언과 함수표현식에서는 호이스팅이 발생하지 않는다.

 

 
    <script>
 
        // 함수표현식
        // -> 함수 호이스팅이 발생하지 않는 구조
        const func = function(){
            console.log('함수표현식 실행!');
        }

        func();

        // 화살표 함수 : 기존의 함수 표현식에서 function 키워드를 삭제,
                                 인자를 받는 매개변수의 괄호()와 코드블럭({}) 사이에 화살표(=>)를 넣어줌
                                 인스턴트 생성할 수 X (prototype 속성이 없다)
        const func2 = ()=>{
            console.log('화살표 함수 실행!');
        }
       
        func2();

        // 화살표 함수 예제
        const greet = () =>{
            console.log('안녕하세요');
        }
        greet();

        const greet2 = (name) =>{
            console.log(`안녕하세요 저는 ${name}입니다.`);
        }
        greet2('youngD');

        const greet3 = name => `안녕하세요. 저는 ${name}.`;
        console.log(greet3('oldD'));

    </script>
 

'Study > JavaScript' 카테고리의 다른 글

[JavsScript] DOM 구조  (0) 2024.02.08
[JavaScript] 객체  (1) 2024.01.26
[JavaScript] 배열  (0) 2024.01.23
[JavaScript] 반복문 (for문)  (1) 2024.01.22
[JavaScript] 반복문 (While문)  (0) 2024.01.19