일반 함수의 일부를 생략해서 선언하는 방법이 여러 가지가 있는데
그 중에서 화살표를 사용하여 이름이 없는 함수를 만드는 것이 화살표 함수이다.
함수를 축약해서 사용할 때는 보통 변수에 담아서 사용한다.
// 함수 이름을 생략
const sum = function(x, y){ return x + y }
// 함수 예약어를 생략하면서 화살표 사용
const double = (x) => { return x * 2 }
// 함수의 소괄호, 중괄호도 생략 가능 (파라미터나 return문이 하나거나 한줄일때)
const pow = x => x ** 2
console.log(sum(1,2)) // 3
console.log(double(2)) // 4
console.log(pow(3)) // 9
익명함수라는 점에서 파이썬의 lambda함수와 비슷한거 아닌가?라고 생각했지만
화살표 함수는 일반 함수와 차이점이 있다.
차이점은 초보자용이 아님!
일반함수 | 화살표함수 | |
---|---|---|
호이스팅 | O | X |
생성자함수 | O | X |
외부의 this 재사용 | X | O |
+ 추가 예정
함수의 인자로 들어가는 함수
순차적으로 실행하고 싶을 때 쓴다.
You가 먼저 나오고 Win이 그 다음에 나오게 하려고 win()함수를 콜백함수로 사용했다. 필요성은 비동기를 배우면서 자세히 알게 될 것 같다..
// 첫번째로 사용할 함수
function print(func) {
return "You " + func()
}
// 두번째로 사용할 함수
function win(name) {
return "Win!"
}
let result = print(win)
console.log(result) // You Win!