본문 바로가기

TIL&WIL49

241111 TIL - package.json, package-lock.json, export, import, prettier, 더하기단항연산자 package.json내 프로젝트의 현재 환경을 알려주는 파일. 이름과 버전은 뭐고, 라이센스나 타입은 뭐고, 현재 활용 중인 모듈들엔 뭐뭐가 있는지 등등"dependecies"는 배포 시에도 적용되는 모듈들 "devDependencies"는 개발 환경에서만 적용되는 모듈 (대표적으로 prettier)  package-lock.json프로젝트에서 활용하는 패키지(모듈들)에 대한 상세한 정보를 알려주는 파일! 버전 통일 및 공유 절차 간소화 목적이 프로젝트에서 활용한 모듈들의 버전 정보 등이 담겨있어서 협업자들끼리 일관된 모듈을 이용할 수 있게 해줌 또한 이 파일이 있기에 프로젝트를 공유받은 다른 사람이 node_modules를 불러올 수 있게됨!   export 선언부 앞에 export 지시자를 붙임으로.. 2024. 11. 11.
241108 TIL - map() 복습, join(), Math.trunc, indexOf(), iterable, array-like map() 콜백함수의 매개변수/* map()의 기본 구조 */arr.map(function(currentValue[, index[, array]]) { // 변환(mapping)할 로직: 변환된 결과를 반환해야 합니다.}[, thisArg]);currentValue : (필수) 처리할 현재 요소, arr에서 순회할 요소들이 할당됨index : (선택) 처리할 현재 요소의 인덱스array : (선택) map을 호출한 배열. 원본 배열에 접근이 필요할 때 활용thisArg : (선택) 콜백함수에서 this로 사용할 객체를 지정 Array.join()배열의 각 요소를 지정된 구분자로 연결해 하나의 문자열로 반환/* join() 기본 구조 */arr.join(separator)separator : (선택).. 2024. 11. 8.
241107 TIL 함수를 매개변수로 넣을 때 주의할 점 func란 변수에 어떤 함수가 할당돼있다고 할 때, 이 변수를 인자에 넣을 때 func로 넣는 것, func()로 넣는 것, func(인자O)로 넣는 것의 결과가 모두 다르다!! 아래 예시를 보자구// x와 y를 인자로 받는 함수가 상수 add에 할당돼있음const add = function(x, y) { return x + y;}// argu를 인자로 받는 함수가 what_return에 할당돼있음const what_return = function(argu) { let return_val = `${argu}`; console.log(return_val);} 1) 매개변수에 func로 넣는 경우 : "소괄호가 붙지 않았음 = 함수가 실행되지 않음"이므로.. 2024. 11. 7.
241106 TIL - 깊은복사이해하기, RegExp 깊은 복사 함수 이해하기/* 깊은 복사 함수 */let deepCopy_obj = function(key) { let result = {}; // 상위 객체의 프로퍼티가 참조형 데이터고 값이 비어있지 않으면 if (typeof key === 'object' && key !== null) { // 하위 객체의 프로퍼티에 접근해 복사하는데 만약 또 하하위객체가 있으면 재귀 실행 for (let lower_key in key) { result[lower_key] = deepCopy_obj(key[lower_key]); } } else { // 상위 객체의 프로퍼티가 기본형 데이터면 그냥 복사 result = key; } // 깊은 복사 완료된 객체 반환 return.. 2024. 11. 6.
241105 TIL - 코드리뷰시 깃헙활용, 함수선언방식, localeCompare(), 코드블럭{}, default export, named export, 팩토리함수, 클로져 코드 리뷰시 깃헙의 활용 팀이 모이기 전에 각 팀원의 깃헙을 확인해 코드를 미리 살펴본다. pull request나 commit 로그 등을 활용해 코드의 의도나 변화를 파악하고, 코드를 읽어보며 리뷰가 필요한 부분에 코멘트를 남겨놓는다. 이 때 개선이 필요한 이유를 명확하게 적어둘 것. 리뷰를 위해 모이면 작성자가 간단히 코드를 소개한 후, 팀원이 남겨놓은 코멘트를 확인하며 의견을 나눈다. 이때 코멘트를 남긴 팀원은 해당 코멘트에 대해 상세히 설명해주어야 하고, 동시에 팀원은 이에 대한 피드백을 분명히 해줘야 한다. 수준이 오르면 코드의 로직이나 메모리 효율을 따지게 되겠지만, 현 수준에선 코드의 알고리즘적인 부분이나, 코드 컨벤션 측면에서 변수 작명 방식이나 코드 일관성 등을 리뷰하는 것도 좋다 함수 .. 2024. 11. 5.
241104 TIL - 전개구문, split(), sort(), assign() 전개구문 spread operator기존 배열이나 객체를 복사한 새 배열이나 객체 생성/* 배열 복사 */let color = ["red", "blue"];let new_color = [...color];console.log(new_color); // 반환 : ["red", "blue"]/* 객체 복사 */let person = {name : "Bob", age : 25};let new_person = {...person};console.log(new_person); // 반환 : {name : "Bob", age : 25}배열에 요소 추가하기/* 배열에 요소 추가 */let color = ["red", "blue"];let new_color = ["yellow", ...color, "green"];co.. 2024. 11. 4.