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개의 댓글

Powered by GraphCDN, the GraphQL CDN