Javascript/Javascript 지식

    lodash curry, flow

    왜씀 ? flow와 curry 함수를 사용하면 코드를 더 간결하게 작성하고 함수형 프로그래밍의 개념을 적용할 수 있다. curry 커링은 함수형 프로그래밍에서 일반적으로 사용한다 부분 적용(Partial Application): 커링된 함수는 필요한 인수를 부분적으로 적용할 수 있습니다. 이를 통해 원하는 시점에 나머지 인수를 전달하여 함수를 완전히 호출할 수 있다. 재사용성 향상: 커링된 함수를 미리 부분 적용하여 새로운 함수를 생성할 수 있으므로, 유사한 동작을 하는 여러 함수를 쉽게 만들 수 있다. 가독성 향상: 커링된 함수를 사용하면 함수 호출이 연쇄적으로 이루어지므로 코드의 가독성이 향상된다. 커링은 함수를 여러 개의 단일 인수를 받는 함수들로 분해하는 과정이며, Lodash의 curry 함수는..

    falsy value, == vs === 연산자

    falsy value Javascript에서 Boolean 문맥(if 문)에서 boolean이 아닌 다른 타입의 값을 false로 사용할 수 있는 값이다! 아래 표에 나온 값들 이외에는 모두 truty value이다! [](빈 array), {}(빈 object), "false"(문자열 false), "0"(문자열 0)등은 truty value! 헷갈리지말자 이 값들은 동등 비교 연산자를 사용할 때 falsy value false boolean false 0 숫자 0 -0 negative zero 0n bingint zero "". '', `` empty string null undefined NaN Not A Number 아래 코드를 보면 쉽게 이해된다! !! 모르는 사람은 없겠지? console.lo..

    이벤트 버블링/캡쳐/위임

    이벤트 버블링/캡쳐/위임

    이벤트 버블링 (Event Bubbling) 어떠한 특정 요소에서 이벤트가 발생하면 이 요소에 할당된 이벤트가 실행되고 가장 먼 조상까지 해당 이벤트가 전파되는 특성이다. 예를 HTML 마크업이 a > div > span와 같고 a, div, span을 모두 클릭 시 alert가 나타나는 이벤트를 가지고 있다하면 span 태그를 클릭하면 span < div < a 순으로 이벤트가 전파된다. 아래 예시를 통해 좀 더 살펴보자! a b c 제일 하위 태그의 이벤트를 발생시키면 가장 먼 조상까지 이벤트가 전파된다. 이벤트 캡쳐 - Event Capture 이벤트 버블링과 반대로 어떠한 특정 요소에서 이벤트 발생하면 이 요소에 할당된 이벤트가 실행되고 가장 먼 자손 까지 해당 이벤트가 전파되는 특성이다. 예를 ..

    클로져

    렉시컬 스코프 자바스크립트 엔진은 함수를 어디서 호출했는 지가 아니라 함수를 어디에 정의 했는지에 따라 상위 스코프를 결정한다. 이를 렉시컬 스코프(정적 스코프)라 한다. 클로져에 대해 알려면 렉시컬 스코프에 대해 꼭 알아야 한다! 아래 코드를 보면 foo()를 실행하면 bar()가 실행되어서 10이 나올 것 같지만 실제 bar가 선언되었을 당시의 x인 1을 가리키게 되어 1을 출력합니다! 이런 예시처럼 렉시컬 스코프는 함수를 어디서 호출하는지가 아니라 어디서 선언하였는지 결정됩니다!! var x = 1; function foo() { var x = 10; bar(); } function bar() { console.log(x); } foo(); // 1 bar(); // 1 클로져 자바스크립트 고유 개..