자바 스크립트에는 화살표 함수가 존재하여 코드를 더 간결하게 구현할 수 있다.
const sum = function(x,y){
return x+y
}
const sum = (x,y) =>{
return x+y
}
두 개의 함수 모두 입력된 두 개의 변수를 더해주는 함수이다. 화살표(=>) 함수는 function을 이용하여 선언한 함수보다 코드가 더 축약된 것을 알 수 있다.
const sum = (x,y) => x+y // 중괄호 생략
const double = x => 2*x //소괄호 생략
만약 중괄호 안에 내용이 return
뿐이라면 중괄호와 return
을 생략하여 함수를 선언할 수 있다. 또, 변수가 하나인 경우에는 소괄호도 생략이 가능하다.
위 내용을 보았을 때, 중괄호 안에 있는 내용은 return
을 통해 반환되는 것을 할 수 있다. 이런 구조는 JSON형식을 다룰 때 문제가 발생한다.
const info = ()=>{
name : Kim
}
JSON 형식의 데이터를 info
에 넣을려고 했지만 JSON은 중괄호를 이용하여 선언하기 때문에 문법적으로 에러가 발생한다. 소괄호를 이용한다면 위 문제를 해결 할 수 있다.
const info = ()=>({
name : Kim
})
setTimeout
함수는 함수와 시간을 인자로 받는 함수로 일정 시간 후 함수를 실행시키는 기능을 한다.
// 1000ms 후에 Hello World를 띄우는 함수
const timer = setTimeout(()=>{
console.log('Hello World')
},1000)
clearTimeout
함수를 이용하여 setTimeout
함수를 종료 시킬 수 있다.
clearTimeout(timer)
setInterval
함수는 함수와 시간을 인자로 받는 함수로 시간 간격마다 함수를 실행시킨다.
// 1000ms 마다 Hello World를 띄우는 함수
const timer = setInterval(()=>{
console.log('Hello World')
},1000)
clearInterval
함수를 이용하여 Inverval 함수를 종료시킬 수 있다.
// 1000ms 마다 Hello World를 띄우는 함수
clearInterval(timer)
콜백(Callback)이란 함수의 인수로 사용되는 함수이다.
일반적으로 특정한 함수의 실행 위치를 보장해주는 용도로 사용할 수 있다.
function timeout(cb){
setTimeout(()=>{
console.log('Hello')
cb()
},3000)
}
timeout(()=>{
console.log(' World')
})
timeout
함수에 World 로그를 띄우는 함수를 call back
함수로 넣어서 Hello 다음에 World 로그가 띄워지는 것을 보장하였다.