1. 함수란 무엇인가?

  • 입력값을 받아서 출력을 해주는 기능이 있다.(출력값이 있다.)
  • 어딘가에서 재사용을 하기 위해 쓰인다.
  • 아키텍쳐를 파악할 수 있다.
    -> 함수들만 봐도 '아 이런 일을 하는 것이구나'를 파악할 수 있다는 정도로 해석
  • 단순히 선언만 해주면 아무런 일이 일어나지 않음 = 호출해야한다.

2. 함수의 기본형태

function name(parameter) {
  // 함수의 기능
  // 함수의 출력값 -> return
}

2.1 함수의 다양한 형태

2.1.1 함수 선언문

// 함수를 선언하고 함수이름을 선언한다.
function sum(x, y){
  return x + y;
}

2.1.2 함수 표현식

// 변수선언을 먼저하고, 함수이름은 선언하지않음
let sumXY = function(x,  y){
  return x + y;
};

2.1.3 함수 복사

// 변수자체에 이미 선언된 함수를 할당할 수 있다.
let sumXY = function(x,  y){
  return x + y;
};
let sumXYcopy = sumXY;

console.log(sumXYcopy(10, 20));
> 30

2.1.4 콜백함수

// 인자로 함수를 받아서 쓰는것
function sum(x, y, c){
  c(x + y);
  return x + y;
}

function callbackFunc(s){
  console.log('콜백함수', s);
}

sum(10, 20, callbackFunc);
/*sum(10, 20, callbackFunc){
  callbackFunc(10 + 20 == 30);
  return 10 + 20;
}
callbackFunc(30){
  console.log('콜백함수', 30);
}*/

/*sum(10, 20, callbackFunc){
  console.log('콜백함수', 30);
  return 30;
}*/

sum(10, 20, callbackFunc);
> 콜백함수 30
  30

2.1.5 화살표함수

// 선언 이름 = 파라미터 => 실행코드
// 간단한 함수일 때 사용한다.
function add(a, b) {
  return a + b;
}
// 위와같은 간단한 함수를 아래처럼 표현할 수 있다.
let addArrow = (a, b) => a + b;

add(100, 100);
> 200
addArrow(100, 100);
> 200

3. Return은 함수를 종료시킨다.

function add(a, b) {
    return a + b; //리턴은 함수를 완전히 종료
    console.log('jayss') // 함수가 종료되었기에 접근할 수 없는 코드
}

add(100, 200)
> 300만 나오고 jayss는 안나옴!!

4. 파라미터의 기본값 설정

파라미터의 작성 부분에서 기본 값을 설정해 줄 수 있다.
기본값이 설정되어 있다면, 입력해주지 않았을 때 기본 값으로 코드가 실행된다.

/*
파라미터 : 함수와 메서드의 입력 변수명
아규먼트 : 함수와 메서드의 입력 값
엄밀히 다르므로 헷갈리지 말자
*/
function add(a = 100, b = 200) {
    return a + b;
}
add (10, 20); // 30
add (10); // 210
add (); // 300
add(b=300) // 500 -> 300을 a값으로 인식해버린다
add('',300) // 300 -> a === ''이 되어버려서 문자열임!!!!
add(undefined,300) // 400
add(,300) // error
profile
😂그냥 직진하는 (예비)개발자

0개의 댓글