본문 바로가기
Javascript

Javascript - 함수(function)

by DGK 2021. 9. 18.

 

인프런 자바스크립트 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

함수(function)

 

  • 함수는 무엇인가?
함수는 특정 기능을 수행하도록 작성된 코드 블록이다.
함수를 사용하면 코드의 재사용성이 극대화되고 코드의 변경이 쉬워져, 코드의 유지 보수가 편리해진다.


<기본 구조>

function name( ){   //name : 함수의 이름, ( )안에는 파라미터가 들어감
	
    //code
    
}
        
name( );     	    //함수의 이름으로 함수실행, ( )안에는 인자를 넣어줌​


<활용 예시>

function calculateTax(profit){	//profit : 파라미터

var vat = 0.1;              	//법인세율
var tax =  profit * 0.1;    	//법인세
    console.log(tax);
}

calculateTax(10);       

// 결과 : 1

//함수의 실행은 함수의 이름(calculateTax)으로 한다. 
//여기서 10은 인자 값이며, 파라미터인 profit을 가리킨다.



function calculateTax(profit){

var vat = 0.1;
var tax = profit * 0.1;
    return tax;  //함수 호출 시, 함수가 실행되어 나온 최종 결과 값을 가져오는 역할 
}

var tax = calculateTax(10);
console.log(tax);

// 결과 : 1

//이러한 형태로도 함수를 만들 수 있다.

//tax라는 변수를 콘솔창에 찍으면, 변수 tax가 함수 calculateTax를 호출하고
//그 결과 함수가 실행되어 나온 최종 결과 값을 return tax;으로 
//다시 tax에 가져올 수 있다. 따라서 콘솔창에는 함수가 실행된 결과 값(1)이 찍힌다.



function calculator(x1, x2, operator){  //x1, x2, operator : 파라미터
	if(operator == "+"){
	   return x1 + x2;
  }else if(operator == "-"){
       return x1 - x2;
  }
}

var plus = calculator(5, 7, "+");	//5, 7, "+" : 인자
console.log(plus);

// 결과 : 12

var minus = calculator(5, 7, "-");	//5, 7, "-" : 인자
console.log(minus);

// 결과 : -2


<참고 : parameter vs argument>

//parameter (매개변수)

//함수의 정의 부분에 나열되어 있는 변수이며, 여기서 calculator 함수 정의 시 사용되는
//x1, x2, operator가 이 함수의 parameter(매개변수)이다.


//argument (전달인자)

//함수를 호출할 때 전달되는 실제 값이며, 여기서는 calculator 함수에 넣어주는 값인 
//5, 7, "+"가 이 함수의 argument(전달인자)이다.


function calculator(x1, x2, operator){  
	if(operator == "+"){
	   return x1 + x2;
  }else if(operator == "-"){
           return x1 - x2;
  }
}

var plus = calculator(5, 7, "+");	
console.log(plus);



//정리를 하자면, 매개변수와 전달인자는 종종 혼용되기도 하지만 
//엄밀히 말하면 매개변수는 함수의 정의부분에 나열되어 있는 변수들을 의미하는 것이고
//전달인자는 함수를 호출할 때 전달되는 실제 값을 의미하는 것이다. 

//이 같은 의미를 명확히 하기 위해서 매개변수는 변수(variable)로, 전달인자는(value)로 
//보는 것이 일반적이며, 매개변수는 함수 정의의 한 부분으로 바뀌지 않는 것과 달리
//전달인자는 함수를 호출할 때 마다 값이 바뀔 수 있는 것이 핵심이다.


참고 출처

 

댓글