전체 글

할 수 있었는데, 해야했나, 했어만 했는데 라는 말을 하며 슬픔과 좌절감을 느끼지 않도록
//tip 36 화살표 함수로 문맥 혼동을 피하라 //유효범위와 문맥은 JS개발자가 어렵게 느끼는 개념이다. //함수의 유효 범위는 간단하게 함수가 접근할 수 있는 변수라고 할 수 있다. //문맥은 함수 또는 클래스에서 this키워드가 참조하는 것이기도 한다. //유효범위와 문맥은 파악하기도 어렵지만 많은 사람들이 두개를 혼동한다 //라이언 모르 라는 사람은 두 개념의 차이를 알 수 있는 간단한 방법을 말했다. //유효범위는 함수와 연관되어 있는 것이고, 문맥은 객체와 연관되어 있다는 것이다. //정확한 분류는 아니지만, 모든 함수에서 통하는 방식이다. 사실상 좋은 일반 규칙이다. //예시를 보도록 하자. //form요소에 유효하지 않은 값을 입력시 노출할 메세지를 설정하는 객체가 있다고 하자. //객체..
// //tip 34 부분적용 함수로 단일책임 매개변수를 관리하자 // //부분 적용 함수로 매개변수를 집중시키자 // //부분 적용 함수 : n개의 인자를 받는다면 m개의 인자를 기억해, 나중에 (n-m)개의 인자만 받아도 동작하는 함수 // //Lodash의 리바운스(단기간 동일 이벤트가 다량으로 발생시 처음이나 마지막의 이벤트만 한번 처리하는 것)에 사용됨 // //❎고차함수는 매개 변수를 가두는 방법으로 특별한 값을 제공, 원래의 인수에 접근할 수 있게 해두고 함수 실행 마칠 수 있음 // //또한, 매개변수를 분리해 함수의 의도를 명확하게 유지 // //고차함수는 다른 함수를 반환하는 함수이다. 함수 실행이 끝날때까지 최소 두단계를 걸친 매개변수가 있다는 것이다. // //이때, 부분 적용 함수..
//tip 32 테스트 하기 쉬운 함수를 만들자 //테스트는 매우 중요하다. //코드를 리팩토링 하기 쉽고, 오래된 코드를 이해하기 쉽고, 명확하고 버그가 적은 앱플리케이션을 만들 수 있다. //하지만 테스트를 작성하는 것은 어렵기 때문에 개발자들은 많이 안하려한다. //그렇지만 우리는 테스트할 수 있는 코드를 작성하는것에 집중해야한다. //테스트할 때 어려운점이라 하면 외부 의존성에 강하게 연결된 코드들이 어렵다. //여기서 외부 의존성이 높다고 말하는 것은 테스트하는 코드 외부에서 함수, API등을 불러와 테스트 할 함수와 밀접하게 결합되어 있다는 것이다. //이러한 문제는 모의객체(mock object)를 생성하여 함수를 가로채고 명시적인 반환값을 설정하게 만들어야 한다. //모의객체 : 주로 객체..
//tip 31 나머지 매개변수로 여러 개의 인수를 변수로 전달하자 //나머지 매개변수로 개수를 알 수 없는 다수의 매개변수를 전달하는 방법을 알아보자. //매개변수를 객체로 전달하는 것은 좋은 방법이지만 객체처럼 전달되는 매개변수들이 서로 다를때 즉, 객체를 다루는 경우에만 좋다. //그렇다면 갯수를 알 수 없는 비슷한 매개변수들을 어떻게 처리해야 하는가? //우선 내장된 arguments 객체를 이용해 해결해 보자. function getArguments() { return arguments; } getArguments(`Bloomsday`, `June 16`); console.log(getArguments(`Bloomsday`, `June 16`)) // { `0`: `Bloomsday`, `1`:..
//tip 29 해체 할당으로 객체 속성에 접근하라 //매개변수는 객체와 배열에서 정보를 빠르게 가져오는 좋은 기능이지만 //항상 순서를 지켜야하고, 매개변수를 건너뛰고 싶은 경우에도 작성해야 한다는 문제점이 있다. //그렇다면 함수의 여러개의 인수가 필요할때, 요구사항이 변경될 때는 어떻게 해야하는가? //사진의 정보들을 전달하는 예시를 보자 //이 경우에는 개별 매개변수로 전달하는 것은 옳지 않다. //많은 매개변수를 작성할 수 도 있고, 이미 구조화된 정보를 변경하는 것은 의미가 없다. const landscape = { title: `Landscape`, photographer: `Nathan`, equipment: `Cannon`, format: `digital`, src: `/landscape..
//tip 27 for-in문과 for-of문으로 반복문 정리 //이번에는 반복문의 명료성을 유지하는 법을 배워보자 //필요한 결과와 일치하지 않을 때는 반복문의 사용의 이점이 없다. const firm = new Map() .set(10, `Ivie Group`) .set(23, `Soundscaping Source`) .set(31, `Big 6`); console.log(firm); //컬랙션은 배열이 아니므로 for문을 사용할 수 없다. ❗❗그러므로 펼침 연산자를 이용해 맵을 배열로 변환하면 해결할 수 있다. const entries = [...firm]; for (let i = 0; i < entries.length; i++){ const [id, name] = entries[i]; if (!i..
58청춘
Just 두 It