중학생 시절, 함수를 처음 배우는 시간에 하필 결석했는데 크게 신경 안쓰고 지나감.,,
그래서 함수를 제대로 알지 못했기 때문에 무서워했었드아,,ㅎㅎ
(혹시 해당 글에 잘못 된 부분이 있다면 댓글로 남겨주시면 감사하겠습니다 ㅎㅎ)
🤔 프로그래밍에서의 함수란?
- 특정한 작업을 수행하는 코드를 의미함.
미리 함수를 만들어두고 원할 때 실행해서 정해진 작업을 수행한다. - 함수는 수납상자와 같고, 영어로는 function,
객체를 배우게 된다면 그곳에선 method라고도 부른다.
🤔 함수는 입력과 출력으로 이루어져있다.
- 입력을 parameter(매개변수, 인자)와 argument(인수)
- 출력을 return 이라 한다.
parameter → formal parameter (공식적인, 정규 적인 매개변수)
argument → actual parameter (실제의, 사실상의 매개변수)
🌳 함수 만드는 방법
• 함수는 이름을 붙여줘야지 사용 가능함.
변수와 마찬가지로 함수를 만드는 행위 → 함수를 선언한다(declare), 함수 선언문
• 함수를 선언하고나서 사용하려면 이름을 불러줘야 한다 → 함수 호출한다(call), 함수 실행문
(* if문, for문, while문, 함수 선언문의 중괄호 뒤에는 세미콜론을 안붙여도 된다.)
// 1. 함수 선언문(function 키워드 뒤에 함수 이름을 넣는 방식)
//a라는 이름의 함수
function a() {} // 함수 선언
a(); // 함수 호출(함수 실행문)
// 2. 함수 표현식(변수 또는 상수에 함수를 대입하는 방식)
// 익명함수를 만들고 변수 b에 담았음
const b = function() {};
// 3. 화살표 함수
// 익명함수를 만들고 변수 c에 담았음
const c = () => {};
🌳 함수를 만들면 좋은 이유
- 작성한 함수는 얼마든지 다시 사용 가능하고,
반복적인 수행이 가능하다(재사용에 용이) - 함수를 기능별로 작성하면, 비슷한 기능들만 모을 수 있다(응집력 향상)
- 코드의 일정 부분을 별도의 논리적 개념으로 독립화 할수 있다
(논리적 이해 증가) - 오류나 에러의 수정이 쉬어진다(안정성 향상)
- 반복되고 중복되는 문장을 밖으로 빼내 함수화 함으로써
소스코드를 간결하게 할 수 있다(복잡성 감소화)
🌳 return 문
1. 함수를 호출하면 나오는 값으로 반환값이라고 함.
2. return문을 사용하지 않는다면, 항상 함수 실행문 끝에 return undefined가 있다고 생각하면 됨.
3. return문은 함수의 실행을 중간에 멈춤(return문이 실행되면, 그 아래의 코드는 실행되지 않는다)
// 아래 두개의 함수는 동일한 반환값을 가진다.
function a(){}
function a(){
return undefined;
}
// 아래 두개의 함수는 동일한 반환값을 가진다.
function b(){
console.log('b');
}
function b(){
console.log('b');
return undefined;
}
🌳 매개변수와 인수
multiply이라는 함수 선언문의 a, b 자리에
2, 3 의 값이 들어가서 계산되어 나온다.
파라미터인 a, b는 multifly 함수를 호출 했을 때,
2, 3 을 넣을 수 있게 만들어주는 틀 같은 존재?!
여기 내가 만든 multifly 함수에서는 a, b(parameter)는 2, 3('argument')의 값을 가짐.
a, b(parameter) = 2, 3('argument') 와 같고, 실제로 parameter는 변수와 같은 특성을 가짐.
함수가 하나의 매개변수와 하나의 인수만 가지는 것은 아니다.
각각 여러개를 가질 수도 있고, 매개변수와 인수의 개수가 일치하지 않아도 됨.
• 매개체(medium) 뜻 : 둘 사이의 어떤 일을 맺어주는 것(둘 사이에서 양편의 관계를 맺어 줌)
• 매개변수(parameter) 뜻 : 함수를 정의할 때 사용되는 변수를 의미 함(인수에 사용되는 값을 담는 틀 정도라고 생각하면 되려나,,?)
(인수에 있는 값(실질적 값)이 함수 호출 시, 매개변수에 담겨 해당 함수의 수식에 피연산자로 사용되어 계산됨)
• 인수(argument) 뜻 : 함수가 호출될 때 매개변수에 실제로 담기는 값을 의미 함.
function pizza(parameter){
console.log(parameter);
}
pizza('argument'); // argument
function multiply(a, b){
return a * b;
}
multiply(2, 3); // 2 * 3 = 6
🌳 매개변수와 인수의 개수가 일치하지 않을 때
// 매개변수보다 인수가 적을 때
function fruits(a, b, c){ // 매개변수 3개, 인수가 2개
console.log(a, b, c);
}
// 매개변수 c는 대응되는 인수가 없기 때문에 undefined를 반환한다.
fruits('apple', 'banana'); // apple, banana, undefined
// 인수보다 매개변수가 적을 때
function fruits(a, b){ // 매개변수 2개, 인수가 3개
console.log(a, b);
}
// orage는 대응되는 매개변수가 없기 때문에 사용되지 않는다
fruits('apple', 'banana', 'orange'); // apple, banana
* 만약 인수가 몇 개 들어있는지 궁금하다면, console.log(arguments); 로 arguments를 출력해서 호출 시 넣었던 인수 목록을 볼 수 있다.
(단, function 키워드로 선언 한 함수만 호출 가능)
🤔 순수함수
하나의 목적을 잘 표현해 내는 함수를 순수 함수라고 하며,
자신의 매개변수나 내부 변수, 상수만 사용하는 함수를 의미한다.
📚 참고 자료
• mdn
• 생활코딩
• Let's Get It 자바스크립트 프로그래밍(제로초)
'✏️ 공부 > JavaScript' 카테고리의 다른 글
태그 생성 문법과 객체, 배열의 반복문(forEach, for...in, for...of) (1) | 2022.06.14 |
---|---|
innerHTML, innerText, textContent 그리고 value (작성중) (0) | 2022.06.10 |
호이호이- (Hoisting) (2) | 2022.05.21 |
Array는 [], Object는 {} (0) | 2022.05.16 |
스크롤 하면 프로그래스바 채우기 (0) | 2022.04.25 |