Function

강지원·2021년 8월 6일
0
post-thumbnail

1. 함수 (function)

프로그램 안에서 각각의 작은 단위의 기능을 수행하는 것.
어떤 언어를 배우던 함수는 대체적으로
input, 매개변수(parameter)들을 받아 처리한 후
output, 리턴을 하는 것이 함수의 기능이다.

여러 번 재사용이 가능하다는 점이 함수의 매력(?)이다.

1-1 함수 작성법

function name(para1, para2){
//function이라고 입력하고 함수 이름(여기선 name)을 지정한 다음
//parameter를 나열해준다
body
//바디에 기본 로직을 작성해준 다음
return
//리턴을 해주면 된다.
}

🎈중요한 점.
하나의 함수는 한 가지 기능만 하게 만들어줘야 한다.

또 하나,
Javascript에서 function은 object이다.
object이기 때문에 function을 변수에 할당할 수도 있고
파라미터로 전달도 되고, 함수를 리턴 할 수도 있게 되는거다.

2. 매개변수 (parameter)

primitive parameters 같은 경우에는 메모리에 value가 저장되어 있다. 그래서 value가 전달될 수 있다.

object parameters 같은경우에는 메모리에 reference가 저장되어진다. 그래서 reference가 전달되어진다.

2-1 매개변수 활용 예시

function changeName(obj){
//changeName이란 함수는 전달된 obj에 이름을 'jiwon'으로
//무조건 변경하는 함수이다.
obj.name = 'jwon';
}
const kang = {name : 'ang'};
//kang이라는 변수를 정의해주고
//ang 이라는 obj를 만들어서 할당해주면
//메모리에는 obj가 만들어진 레퍼런스가 메모리에 들어가게 된다.

changeName(kang);
// changeName kang을 전달하면 kang이 가리키고 있는 곳의
//이름은 ang으로 변경된다.
console.log(kang);
//이름이 ang으로 변경되었는지 확인 작업

2-2 기본 파라미터(Default parameters)

function showMessage(message,from = 'unknown'){
console.log(`${message} by ${from}`);
}
//from 매개변수에 default 값을 지정하면
//사용자가 파라미터를 사용안할 때 이 값이 대체되어 사용된다.
showMessage('Hi!');
//Hi! by unknown 출력

2-3 rest parameters

function printAll(...args){ // ...을 작성하면 배열 형태로 전달한다.
//밑의 printAll의 3개의 값이 배열 형태로 전달된다.
for(let i=0; i<args.length;i++){
console.log(args[i]);
//for 반복문을 사용해 3번 출력한다.
}
}
printAll('ambition', 'man', 'kang');
//ambition
//man
//kang으로 출력

여기서 for 반복문을 간단하게 만들어주는 방법이 있는데
for문의 파라미터에 const arg of args를 활용해 코드를 줄일 수 있다.

for(const arg of args){
//args에 있는 값들이 arg로 들어가며 차례대로 하나씩 출력
console.log(arg);

정리하며

  1. 함수에는 하나의 기능만 넣는 것이 좋다.
  2. 매개변수를 활용해 비슷한 함수끼리 묶어 코드의 양을 줄이는 것이 가능하다.




Reference
MDN
Dream Coding

profile
'Why' better than 'Yes'

0개의 댓글