LearningJavaScript

2. 함수

jyshimmy 2020. 7. 27. 17:25

자바스크립트에서의 함수 사용엔 함수 이름(function name)과 입력(input)이 있다.

매개변수: 이름처럼 변수이다. 즉, 값이 바뀔 수 있다. 다만 함수 안에 속한 변수이고, 매개변수에 할당된 값이 변함에 따라 함수의 결과 또한 변한다.

 

 

함수 선언식

e.g.)

1.

function myFunction(input) {

  //컴퓨터에게 시킬 일

}

 

2.

function getAreaOfCircl(radius) {

  let pi = 3.141592;//컴퓨터에게 시킬 일

  let areaOfCircle = pi * radius * radius;

  return areaOfCircle;

}

함수 표현식

함수를 변수에 할당하는 식

const add = function(x, y) {
  return x + y;
}

//closure에서 함수 표현식
const adder = function(x) {
  return function(y) {
    return x + y;
  }
}

 

화살표 함수

 

const add = (x, y) => { //function 키워드가 => 화살표로 축약됨
  return x + y;
}
//return도 생략이 가능하다
const add = (x, y) => x + y
const add = (x, y) => (x + y)
// const add = (x, y) => {x + y} 여기서 { }중괄호 사용은 불가능하다

 

화살표 함수는 클로저를 표현할 때 더 강력하다.

//step 1. function 키워드 없애기
const adder = (x) => {
  return (y) => {
    return x + y
  }
}

//step 2. 안쪽 return없애기
const adder = x => {
  return y => x + y
}

//step 3. 바깥쪽 return도 없애기
const adder = x => y => x + y

하지만 화살표 함수는 call, apply, bind를 사용할 수 없고,

화살표 함수의 실행은 this를 결정짓지 않는다.