본문 바로가기

JavaScript/methods

(10)
[javascript] structuredClone() 가이드: 깊은 복사부터 고급 활용까지 자바스크립트에서 객체를 복사하는 방법은 여러 가지가 있지만, 그중에서도 structuredClone()은 깊은 복사를 위한 강력한 도구입니다. 얕은 복사와 깊은 복사의 차이점부터, structuredClone()의 동작 방식, 장단점, 그리고 실제 개발에서 유용하게 사용할 수 있는 고급 활용법까지 자세히 알아보겠습니다. 1. 깊은 복사 vs 얕은 복사: 왜 structuredClone()이 필요할까요? 자바스크립트에서 객체를 복사할 때 얕은 복사와 깊은 복사라는 두 가지 방법이 있습니다.얕은 복사: 객체의 참조만 복사합니다. 즉, 복사된 객체와 원래 객체가 같은 메모리 주소를 가리키므로, 복사된 객체를 변경하면 원래 객체도 함께 변경됩니다. Object.assign()이나 스프레드 연산자(...)가 대표..
[javascript] 객체와 배열 간의 변환 Object.fromEntries() / Object.entries() export default function Page() { async function createInvoice(formData) { 'use server' const rawFormData = { customerId: formData.get('customerId'), amount: formData.get('amount'), status: formData.get('status'), } // 데이터 변조 // 캐시 재검증 } return ...} Next js 에서 필드가 많은 폼을 작업할 때는 Object.fromEntries() 혹은 Object.entries() 메서드를 사용하면 좀 더 수월하게 작업할 수 있습니다. Object.fromEn..
[javascript] 문자열을 배열로 변환하는 방법들 코테나 실무에서 문자열을 배열로 변환하여 로직을 작성해야하는 경우가 종종 있습니다그럴 때 사용하는 방법은 아래 3가지 중 편한 방법을 선택하시면 됩니다 1. split() 사용 const str = "hello";const arr1 = str.split(''); // ['h', 'e', 'l', 'l', 'o']const str = "hello"; const arr1 = str.split(''); // ['h', 'e', 'l', 'l', 'o'] 2. spread 연산자 사용 const arr2 = [...str]; // ['h', 'e', 'l', 'l', 'o']3. Array.from() 사용 const arr3 = Array.from(str); // ['h', 'e', 'l', 'l', 'o']
[javacript] JavaScript 통화 형식 지정하기 (Intl.NumberFormat) 달러export const currencyFormatter = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', minimumFractionDigits: 2,}) 원화export const currencyFormatter = new Intl.NumberFormat('ko-KR', { style: 'currency', currency: 'KRW', minimumFractionDigits: 0}) 사용할 때는  {urrencyFormatter.format(meal.price)} 아래처럼 사용해주면 된다
[JavaScript] for of 반복문에서 배열의 idx 값 가져오기 entries() let fruits = ['바나나', '사과', '체리', '수박']for (const [idx, fruit] of fruits.entries()) { console.log(`idx: ${idx}, fruit: ${fruit}`);}// idx: 0, fruit: 바나나// idx: 1, fruit: 사과// idx: 2, fruit: 체리// idx: 3, fruit: 수박 물론 이런 방법도 된다. let fruits = ['바나나', '사과', '체리', '수박']let idx = 0;for (const fruit of fruits) { console.log(`idx: ${idx}, fruit: ${fruit}`); idx++;}// idx: 0, fruit: 바나나// idx: 1,..
[JavaScript] Array.from() 1. 목적Array.from()은 유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운 Array 객체를 만듭니다. 2. 기본 구문 Array.from(arrayLike[, mapFn[, thisArg]])  3. 매개변수arrayLike: 배열로 변환할 유사 배열 객체나 반복 가능한 객체mapFn (선택적): 배열의 모든 요소에 대해 호출할 맵핑 함수thisArg (선택적): mapFn 실행 시 this로 사용할 값 4. 특징문자열을 개별 문자의 배열로 변환할 수 있습니다.Set이나 Map을 배열로 변환할 수 있습니다.유사 배열 객체(예: arguments 객체)를 실제 배열로 변환할 수 있습니다.두 번째 인자로 맵핑 함수를 제공하..
[JavaScript] Object.keys, Object.values, Object. entries, Object.fromEntries Object.keys, Object.values, Object.entrie각 메서드는 객체의 키, 벨류, 혹은 둘 다를 배열로 반환한다let user = { name: "John", age: 30};console.log(Object.keys(user)) // 출력 : ["name", "age"]console.log(Object.values(user)) // 출력 : ["John", 30]console.log(Object.entries(user)) // 출력 : [ ["name","John"], ["age",30] ]  fromEntries(iterable) key-value 리스트를 객체로 변환한다.const entries = new Map([ ['foo', 'bar'], ['baz', 42],]..
[JavaScript] with 사용법 Array.prototype.with() 2023년 7월에 추가된 메서드로배열의 특정 인덱스의 값을 변경한 새로운 배열을 반환.원본 배열은 변경되지 않는다.  1. 구문 arrayInstance.with(index, value) // index: 변경하려는 요소의 인덱스 // value: 새로 할당할 값  2. 반환값  지정된 인덱스의 요소가 새 값으로 대체된 새로운 배열 3. 예시 const arr = [1, 2, 3, 4, 5]; console.log(arr.with(2, 6)); // [1, 2, 6, 4, 5] console.log(arr); // [1, 2, 3, 4, 5] (원본 배열은 변경되지 않음) 4. 특징 음수 인덱스 사용 가능 (배열 끝에서부터 계산)희소 배열(sparse array)에 사용하면 빈 슬롯을 und..