인프런 자바스크립트 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.
함수(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)로 //보는 것이 일반적이며, 매개변수는 함수 정의의 한 부분으로 바뀌지 않는 것과 달리 //전달인자는 함수를 호출할 때 마다 값이 바뀔 수 있는 것이 핵심이다.
'Javascript' 카테고리의 다른 글
Javascript - Number 내장함수 (0) | 2021.09.19 |
---|---|
Javascript - String 내장함수 (0) | 2021.09.19 |
Javascript - 반복문(for, for-in, for-of, while, do-while) (0) | 2021.09.18 |
Javascript - 조건문(if-else, switch) (0) | 2021.09.18 |
Javascript - 연산자(산술, 비교, Logical 등) (0) | 2021.09.17 |
댓글