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를 결정짓지 않는다.