728x90
함수(Fuction)
함수 선언문(Declaration)
function hello() {}
함수 표현식(Expression)
const Hello = function() {}
호이스팅(Hoisting)
코드 상단에서 선언된 함수를 호출하는 것
함수 선언문으로 작성한 함수는 코드 내 선언부 상단에서 함수를 호이스팅하는 것이 가능하지만 함수 표현식으로 작성된 함수는 불가능하다.
나머지 매개변수
function sum(...rest) {
return rest.reduce(function(acc,cur) { //배열 내 원소들을 더하고 더한 원소는 삭제하는 코드
return acc + cur
}, 0
}
sum(1,2) //3
sum(1,2,3,4,5)
javascipt는 모든 매개변수의 정보를 가지고 있는 arguments라는 유사배열(Array-Like)를 가지고 있다.
하지만 배열의 내장 함수를 사용할 수 없기 때문에 보통 사용하지 않음
화살표 함수 Arrow Function
const sum = (a,b) => a+b
const b = x => x * x
const a = () => ({ a : 1}) // 객체값을 반환하는 함수라면 리턴을 생략할 때 무조건 소괄호로 감싸주어야 함
바로 리턴값을 반환하는 함수라면 함수를 한줄로 작성가능함
매개변수가 하나라면 소괄호를 생략할 수 있다.
즉시실행함수 IIFE
(() => {})()
(function () {}) ()
(function () {}())
!function () {} ()
+function () {} ()
익명함수로 함수를 작성하자마자 호출할 수 있는 함수
보통 소괄호 두개를 연속으로 붙이는 패턴으로 사용함
코드의 난독화를 위하여 사용함
콜백
const a = (callback) => {
callback() // 이 부분에서 b 함수가 동작하는 것
}
const b = () => {
}
a(b) // b는 콜백함수
함수가 실행될 때 인수로 들어가는 또 하나의 함수
const sum = (a,b,c) => [
setTimeout(() => { // callback
c(a+b) //calback
},1000)
}
sum(1,2,value => {console.log(value)})
728x90
'FE > Javascipt' 카테고리의 다른 글
[Javacript] 클래스 (0) | 2023.07.19 |
---|---|
[Javascipt] This (0) | 2023.07.18 |
[Javascript] 구조 분해 할당과 선택적 체이닝 (0) | 2023.07.17 |
[Javascipt] 연산자 (0) | 2023.07.17 |
[Javascript] Object와 Fuction (0) | 2023.07.17 |