//tip 31 나머지 매개변수로 여러 개의 인수를 변수로 전달하자 //나머지 매개변수로 개수를 알 수 없는 다수의 매개변수를 전달하는 방법을 알아보자. //매개변수를 객체로 전달하는 것은 좋은 방법이지만 객체처럼 전달되는 매개변수들이 서로 다를때 즉, 객체를 다루는 경우에만 좋다. //그렇다면 갯수를 알 수 없는 비슷한 매개변수들을 어떻게 처리해야 하는가? //우선 내장된 arguments 객체를 이용해 해결해 보자. function getArguments() { return arguments; } getArguments(`Bloomsday`, `June 16`); console.log(getArguments(`Bloomsday`, `June 16`)) // { `0`: `Bloomsday`, `1`:..
JavaScript
//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..
//tip 22 map() 메서드로 비슷한 길이의 배열을 생성하라 //map() 메서드는 map객체와는 다른 것이다. //map() 메서드는 흔하게 사용되고 새롭게 생성된 배열에 메서드를 콜백에서 반환하는 정보가 담긴다. 즉, 반환값이 알기 쉽다는 것이다. //맵 함수는 정보, 값의 일부를 가져와 다른 형식의 값으로 반환한다. 예제를 보자 const band = [ { name: `corbett`, instrument: `guitar`, }, { name: `evan`, instrument: `guitar`, }, { name: `sean`, instrument: `bass`, }, { name: `brett`, instrument: `drums`, }, ]; //모든 배열 메서드는 배열의 각 항목에 적..
//tip 20 화살표 함수(arrow function)으로 반복문을 간략하게 //자바 스크립트에서 콜백삼수를 많이 보게되는데, 콜백 함수는 다른 삼수의 매개변수로 사용된다. //화살표 함수를 이용해 콜백 함수를 받는 함수보다 콜백함수가 더 긴 상황을 줄일 수 있다. //화살표 함수는 함수에 필요하지 않은 정보(function키워드, 인수를 감싸는 괄호, return, 중괄호)를 최대한 걷어낸다. //대신에 `=>`화살표 하나만 사용하면 된다. 예제를 보자 function capitalize(name) { return name[0].toUpperCase() + name.slice(1); } //toUppercase() : 문자열을 대문자로 변환, 반환. slice(begin, end) : begin부터 ..
//tip 15 맵 생성 시 부수 효과를 피하라. //부수효과는 함수 내부에서 함수 외부의 값에 영향을 주거나 받는것으로 //즉, 함수내부에서 매개변수가 아닌 외부의 값을 참조, 대입, 변경, 삭제하는 행위이다. const defaults = new Map() .set(`색상`, `갈색`) .set(`견종`, `비글`) .set(`지역`, `캔자스`); const filters1 = new Map() .set(`색상`, `검정색`); //부수 효과를 신경 쓰지 않으면 맵에 has()메서드를 사용해서 키가 존재하는지 확인할 수 있다. //사용자가 설정한 데이터에 없는 디폴트의 키를 병합해주는 함수이다. function applyDefaults(map, defaults) { for (const [key, v..