728x90
반응형
1. 함수 표현식(function expression)과 함수 선언식(function declaration)
함수를 만드는 방법은 함수표현식과 함수선언식이 있다.
1
2
3
4
5
6
7
8
9
10
11
12
|
alpha(5) // 결과 : ReferenceError: Cannot access 'alpha' before initialization
beta(5) // 결과 : 25
//함수 표현식
const alpha = function(num){
console.log(num * num)
}
//함수 선언식
function beta(num){
console.log(num * num)
}
|
cs |
-함수 표현식 : 어떤 변수에 함수를 지정하는 방법으로, 이를 활용하여 함수 자체를 다른 함수의 인자로 전달하거나, 다른 함수의 결과로서 반환되는 등 다양하게 응용할 수 있다. 함수의 표현 이후에만 사용이 가능하다.(hoisting 불가)
>>함수 표현식의 형태를 활용하여 high order function의 형태로 활용이 가능하다.
-함수 선언식: 함수를 바로 선언하는 것으로, 함수 선언 코드 위에서 함수를 불러와서 사용할 수 있다.(hoisting가능)
>> 선언식의 hoisting을 지나치게 활용하면, 코드의 유지보수 측면에서 좋지 않다. 어떤 부분에서 코드를 선언하였는지 알기 어렵기 때문이다.
2. 고차함수(High Order Function)와 콜백함수(Callback Function)
다른 함수를 인자(argument)로 받거나 다른 함수를 리턴하는 함수를 고차함수라고 한다.
이와 반대로, 어떤 함수에 인자로서 전달되는 함수를 콜백함수라고 한다.
아래 예제에서, multiple 함수는 square 함수를 인자로 불러왔으므로 고차함수이고, square함수는 반대로 callback 함수이다.
1
2
3
4
5
6
7
8
9
|
function square(num){
return num * num;
}
const multiple = function(func, num){
return func(num) * 2
}
multiple(square, 5) // 결과 : 50
|
cs |
728x90
반응형
'Programming-[Frontend] > Javascript' 카테고리의 다른 글
Javascript / Array / forEach, Every, Some (0) | 2020.08.22 |
---|---|
Javascript / DOM / Event (addEventListener, onclick) (0) | 2020.08.18 |
Javascript / DOM / 기초 / createElement, textContent, append, remove, querySelector (0) | 2020.08.11 |
Javascript / 기초 / 자료형(Primitive type, Reference type) (0) | 2020.08.07 |
Javascript / 기초 / Testbuilder (Mocha, Chai) (0) | 2020.08.06 |