-
JS함수 정리 - 화살표함수, 즉시실행함수, 호이스팅, 타이머함수, 콜백프론트엔드 개발자가 될거야./js 2022. 6. 14. 11:17
* 화살표함수
// 화살표 함수 // () => {} vs function () {} const double = function (x) { return x + 2 } console.log('double: ', double(7)) const doubleArrow = x => x * 2 console.log('doubleArrow', doubleArrow(7)) // 화살표 함수 객체데이터 사용법 const doubleArrow = x => ({ name: 'jeongeun' }) console.log('doubleArrow', doubleArrow(7))
* 즉시실행함수 IIFE
: 함수가 한 번 실행되고 쓸 일이 없을 때
: 이름이 없는 익명함수를 만들자마자 그 자리에서 바로 실행가능
// 즉시실행함수 // IIFE, Immediately-Invoked Function Expression const a = 7 function double() { console.log(a * 2) } double(); // 이것이 즉시 실행 함수 (x)() ot (x()) 후자가 더 많이 쓰임 (function () { console.log(a * 2) })(); (function () { console.log(a * 2) }());
* 호이스팅
: 함수의 이름만 보고도 함수의 로직을 추측해 볼 수 있어서 용이
: 함수호출이 함수선언보다 상단에 있는 모습
// 호이스팅 // 함수 선언부가 유효범위 최상단으로 끌어올려지는 현상 const a = 7 double() // 함수 표현을 사용했을 때는 안됨. const double = function () { console.log(a * 2) } // 함수 선언을 했을 때는 가능. // 왜냐하면 함수 선언부는 호이스팅이 발생하기 때문이다. function double() { console.log(a * 2) }
* 타이머함수
setTimeout(함수, 시간): 일정 시간 후 함수 실행
setInterval(함수, 시간): 시간 간격마다 함수 실행
clearTimeout(): 설정된 Timeout 함수를 종료
clearInterval(): 설정된 Interval 함수를 종료
// 타이머 함수 const timer = setTimeout(() => { console.log('hi') }, 3000) //1000ms는 1초 const h1El = document.querySelector('h1') h1El.addEventListener('click', () => { clearTimeout(timer) })
<h1>hello</h1> const timer = setInterval(() => { console.log('hi') }, 3000) //1000ms는 1초 const h1El = document.querySelector('h1') h1El.addEventListener('click', () => { clearInterval(timer) })
* 콜백
: 함수의 인수로 사용되는 함수
: 특정한 실행 위치를 보장해주는 함수
function timeout() { setTimeout(() => { console.log('Heropy!') }, 3000) } timeout() console.log('Done!') // 이렇게 하면 'Done!'이 먼저 실행되고 3초 뒤에 timeout()이 실행됨 // 콜백함수 사용 // 함수의 인수로 사용되는 함수 // 특정한 실행 위치를 보장해주는 함수 function timeout(cb) { setTimeout(() => { console.log('Heropy!') cb() }, 3000) } timeout(() => { console.log('Done!') })
'프론트엔드 개발자가 될거야. > js' 카테고리의 다른 글
[TIL] Today I Learned : for문 - findSmallestElement 함수 (0) 2022.06.22 [노마드 코더] 바닐라 JS로 크롬 앱 만들기 (0) 2022.06.19 자바스크립트 라이브러리 정리 (0) 2022.06.13 나의 첫번째 웹사이트 수정편 (0) 2022.06.13 자바스크립트 타이핑 효과 (0) 2022.06.13