[JS] 순수함수
·
JavaScript
1. 순수함수 순수 함수는 입력값에 의존하여 항상 동일한 출력값을 반환하는 함수로, 외부 상태에 영향을 주지 않고 사이드 이펙트가 없는 함수를 의미합니다. 외부함수: 전역 변수나 서버 데이터, DOM 등을 의미합니다. 함수가 순수하다라는 의미를 갖기 위해서는 아래의 특성을 가져야 합니다. 숨겨진 정보나 외부 상태가 아닌 결과를 생성하는 입력에만 의존해야 한다. 참조 또는 전역 변수 / 객체에 의해 전달된 매개변수를 수정하는 것과 같은 관찰 가능한 부작용을 일으키지 않아야 한다. // 순수 함수의 예시 function addNum (a, b) { return a + b } 위 코드처럼 a,b를 매개변수로 전달하고 외부 변수에 접근하지 않으며 주어진 입력을 기반으로 계산을 수행한다. let num1 = 20..
[JS] Promise란 무엇인가?
·
JavaScript
프로미스(Promise) 자바스크립트는 비동기를 처리하기 위해서 콜백함수를 사용합니다. 하지만 콜백을 너무 많이 사용하게 되면 개발자라면 흔히들 들어본 콜백지옥을 겪게 됩니다. 에러처리도 불편하고 비동기를 한 번에 처리를 하는데 한계가 있습니다. 위의 짤을 콜백지옥의 유명한 짤입니다. 이미지 처럼 콜백의 무한한 중첩으로 코드의 맥락과 흐름을 파악하기 어렵고 코드의 뎁스가 굉장히 깊어져서 개발자들의 가독성을 떨어뜨리는 안 좋은 행위입니다. 하지만 이러한 콜백 함수의 단점을 보완하며 비동기 처리에 사용되는 객체를 프로미스(Promise)라 합니다. 프로미스는 비동기 동작을 처리하기 위해 (ES6)부터 도입된 Javascript의 내장 클래스입니다. 프로미스(Promise)의 장점 비동기 처리 시점을 명확하게..
[JS] 클로저(closure) 란 ?
·
JavaScript
클로저에 대한 정의 클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합입니다. - MDN 함수가 선언된 렉시컬 환경 const x = 1; function outerFunc() { const x = 10 function innerFunc() { console.log(x) // 10 } innerFunc() } outerFunc() 중첩함수 innerFunc의 상위 스코프는 outerFunc의 스코프 -> 그래서 x = 10에 [먼저] 접근하는 것 만약 이렇다면? innerFunc()에서 출력하는 x값은 뭘까? const x = 1 // innerFunc()에서는 outerFunc()의 x에 접근할 수 없다. // Lexical Scope를 따르는 프로그래밍 언어이기 때문이다. function oute..
[JS] 콜백함수 정리
·
JavaScript
1. 콜백 함수란 ? i. 다른 코드의 인자로 넘겨주는 함수 ii. 콜백 함수를 넘겨받은 코드는 이 콜백 함수를 필요에 따라 적절한 시점에 실행 (제어권) iii. callback = call(부르다) + back(되올아오다) = 되돌아와서 호출하다. iv. 즉, 콜백 함수는 다른 코드 (함수 또는 메서드)에게 인자로 넘겨줌으로써 그 제어권도 함께 위임한 함수, 콜백 함수를 위임받은 코드는 자체적으로 내부 로직에 의해 이 콜백 함수를 적절한 시점에 실행 제어권 i. 호출 시점 (0.3sec) var count = 0 // timer : 콜백 내부에서 사용할 수 있는 "어떤 게 돌고있는지" 알려주는 id값 var timer = setInterval(function() { console.log(count) ..
Leo(상원)
'JavaScript' 카테고리의 글 목록