조아마시

쓸모 있는 상세페이지 만들기

웹개발/javascript 53

[자바스크립트] 자바스크립트 객체 합치는 다양한 방법

자바스크립트에서 객체를 합치는 방법은 다양합니다. 각 방법마다 장단점이 있으므로, 상황에 맞게 적절한 방법을 선택하는 것이 중요합니다.1. Object.assign()기본적인 객체 병합: 기존 객체를 변경하면서 새로운 객체의 프로퍼티를 추가합니다.얕은 복사: 중첩된 객체는 참조만 복사되므로 주의해야 합니다.사용법:const obj1 = { a: 1, b: 2 };const obj2 = { c: 3, d: 4 };const mergedObj = Object.assign({}, obj1, obj2);console.log(mergedObj); // { a: 1, b: 2, c: 3, d: 4 } 2. Spread 연산자 (...)객체 리터럴에서 사용: 새로운 객체를 생성하면서 기존 객체의 프로퍼티를 펼쳐 넣습..

[자바스크립트] Yup 사용하기

Yup은 자바스크립트에서 데이터 유효성 검사를 간편하고 효율적으로 수행할 수 있도록 도와주는 라이브러리입니다. 특히, 폼 데이터의 유효성을 검증하는 데 많이 사용됩니다.왜 Yup을 사용해야 할까요?간결한 코드: 복잡한 유효성 검사 로직을 직접 작성하는 대신, Yup의 제공하는 다양한 검사 규칙을 조합하여 간결하게 표현할 수 있습니다.재사용 가능한 스키마: 한 번 정의한 스키마를 여러 곳에서 재사용할 수 있어 코드 중복을 줄이고 유지보수를 용이하게 합니다.타입스크립트와의 호환성: 타입스크립트와의 통합이 잘 되어 있어 강력한 타입 안전성을 제공합니다.다양한 검사 규칙: 문자열 길이 제한, 숫자 범위, 필수 입력 여부 등 다양한 유형의 검사 규칙을 제공합니다.커스텀 검사 규칙: 기본 제공되는 규칙 외에도 사용..

[자바스크립트] 커링(currying)

커링은 다수의 인자를 받는 함수를 단일 인자를 받는 함수들로 변환하는 기법입니다. 쉽게 말해, 하나의 함수를 여러 개의 함수로 쪼개서 사용하는 것이라고 생각하면 됩니다. 이렇게 쪼개진 각각의 함수는 이전 함수의 결과를 기억하고 다음 인자를 기다리는 형태로 작동합니다.왜 커링을 사용할까요?함수의 재사용성 증가: 부분적으로 적용된 함수를 만들어 다양한 상황에 활용할 수 있습니다.코드 가독성 향상: 복잡한 함수를 작은 단위의 함수로 나누어 코드를 더 명확하게 만들 수 있습니다.함수형 프로그래밍 패러다임: 함수를 데이터처럼 다루는 함수형 프로그래밍에서 중요한 개념입니다.파이프라인 구축: 함수를 연결하여 데이터 처리 과정을 표현하기 좋습니다.예시를 통해 알아보기// 일반적인 함수function sum(a, b, ..

[자바스크립트] Rest 연산자 (Rest Operator)

Rest 연산자는 스프레드 연산자와 마찬가지로 ... 세 개의 점을 사용하지만, 그 역할은 정반대입니다. 스프레드 연산자가 배열이나 객체를 펼쳐서 개별 요소로 만드는 반면, Rest 연산자는 여러 개의 인수를 하나의 배열로 모읍니다. 즉, 나머지 인수들을 모아서 배열로 만들어주는 역할을 합니다.function 함수명(...변수명) { // 변수명은 배열 형태로 전달된 나머지 인수들을 담게 됩니다.}Rest 연산자 사용 예시1. 가변 인자 함수function sum(...numbers) { return numbers.reduce((total, num) => total + num, 0);}const result = sum(1, 2, 3, 4, 5); // 15함수에 전달되는 인자의 개수가 정해지지 않을 ..

[자바스크립트] Spread 연산자 (Spread Operator)

스프레드 연산자는 배열이나 객체를 개별 요소로 펼쳐서 새로운 배열이나 객체를 생성하거나, 함수의 인수로 전달하는 데 사용되는 연산자입니다. 쉽게 말해, 하나의 집합을 개별 구성 요소로 흩뿌리는 역할을 합니다....iterableiterable: 배열, 문자열, arguments 객체 등 반복 가능한 객체스프레드 연산자 사용 예시1. 배열 결합const array1 = [1, 2, 3];const array2 = [4, 5, 6];const combinedArray = [...array1, ...array2]; // [1, 2, 3, 4, 5, 6]두 개의 배열을 하나의 새로운 배열로 합칠 때 사용합니다.2. 배열 복사const originalArray = [1, 2, 3];const copiedArray..

[자바스크립트] 연산자 (Operators)

산술 연산자 (Arithmetic Operators)let a = 5;let b = 2;a + b; // 덧셈: 5 + 2 = 7a - b; // 뺄셈: 5 - 2 = 3a * b; // 곱셈: 5 * 2 = 10a / b; // 나눗셈: 5 / 2 = 2.5a % b; // 나머지: 5를 2로 나눈 나머지 1a ** b; // 제곱: 5의 2승, 즉 5 * 5 = 25'1' + 1; // '11''11' - 2; // 9'11' * 2; // 22'11' / 2; // 5.5'11' % 2; // 1'11' > 10; // true 할당 연산자 (Assignment Operators)let x = 10;// x에 5를 더하고, 결과를 다시 x에 할당x += 5; // x는 이제 15가 됩니다.// x에..

[자바스크립트] 자바스크립트 6가지 false 값 자세히 알아보기

자바스크립트에서 조건문이나 논리 연산에서 거짓(false)으로 평가되는 값들을 falsy 값이라고 합니다. 이러한 falsy 값들을 정확히 이해하는 것은 자바스크립트를 효과적으로 사용하기 위해 매우 중요합니다.6가지 falsy 값false:논리형 값 false 자체는 당연히 falsy 값입니다.null:객체를 참조하지 않는 값으로, 아무것도 없는 상태를 나타냅니다.undefined:아직 값이 할당되지 않은 변수나 존재하지 않는 객체의 프로퍼티를 참조할 때 나타나는 값입니다.0:숫자 0은 falsy 값입니다.NaN:Not a Number의 약자로, 숫자가 아닌 값을 나타냅니다. 예를 들어, 숫자가 아닌 문자열을 숫자로 변환하려고 할 때 발생합니다."" (빈 문자열):아무런 문자가 없는 빈 문자열도 fals..

[자바스크립트] 자바스크립트 데이터 타입 이해하기

자바스크립트에서 데이터 타입은 변수가 저장할 수 있는 값의 종류를 정의합니다. 데이터 타입을 이해하는 것은 변수를 효과적으로 사용하고 코드 오류를 방지하는 데 중요합니다.자바스크립트에는 크게 두 가지 종류의 데이터 타입이 있습니다.1. 기본형 (Primitive Type) / 원시 타입기본형은 자바스크립트에서 가장 단순한 데이터 타입이며, 값 자체를 직접 저장합니다. 기본형은 다음과 같습니다.Number: 정수와 실수를 모두 포함하는 숫자 데이터입니다.예시: 10, 3.14, -200String: 텍스트 데이터를 나타냅니다. 큰따옴표(") 또는 작은따옴표(')로 둘러싸인 문자의 시퀀스입니다.예시: "Hello, world!", '안녕하세요', This is a string literal.Boolean: ..

[자바스크립트] 자바스크립트 불변성 이해하기

자바스크립트 불변성은 객체가 생성된 후 상태를 변경할 수 없는 것을 의미합니다. 즉, 객체의 프로퍼티 값을 변경하거나 삭제할 수 없다는 것입니다. 반면, 가변 객체는 생성 후에도 값을 변경하거나 삭제할 수 있습니다.불변성은 단순히 값 재할당과는 다릅니다. 값 재할당은 변수에 다른 값을 할당하는 것을 의미하는데, 이는 기존 객체의 상태를 변경하지 않습니다. 반면, 객체의 프로퍼티 값을 변경하면 객체 자체의 상태가 변하게 됩니다.불변성의 장점불변성을 사용하는 것은 다음과 같은 여러 장점을 제공합니다.예측 가능한 코드: 불변 객체는 생성된 후 상태가 변경되지 않기 때문에 코드의 동작을 예측하기 쉽습니다. 이는 버그를 줄이고 코드를 이해하고 유지 관리하는 것을 용이하게 합니다.스레드 안전: 불변 객체는 여러 스..

[자바스크립트] 자바스크립트 객체 타입 메모리 관리

자바스크립트 객체는 메모리에서 **힙(heap)**이라는 영역에 저장됩니다. 힙은 객체와 그 속성, 메서드를 위한 메모리 공간을 제공합니다. 객체는 메모리에 직접 저장되는 것이 아니라 참조를 통해 관리됩니다.1. 객체 생성 및 메모리 할당객체는 new 키워드를 사용하여 생성됩니다.객체 생성 시 힙에 객체 데이터를 위한 메모리 공간이 할당됩니다.객체의 속성과 메서드는 객체 데이터의 일부로 저장됩니다.예: let person = new Object(); 라고 하면 힙에 person 객체가 생성되고, 객체 데이터를 위한 메모리 공간이 할당됩니다.2. 객체 참조객체 참조는 객체 데이터를 가리키는 메모리 주소입니다.변수에 객체를 할당하면 변수는 해당 객체의 참조를 저장합니다.여러 변수가 동일한 객체를 참조할 수 ..

[자바스크립트] 배열 (Array)

자바스크립트 배열은 크게 두 가지 종류로 나눌 수 있습니다.1. 리터럴 배열리터럴 배열은 대괄호 []를 사용하여 직접 값을 나열하는 가장 간단한 방법입니다.// 숫자 배열const numbers = [1, 2, 3, 4, 5];// 문자열 배열const strings = ["Hello", "World", "!@#"];// 혼합 배열const mixedArray = [1, "two", 3.14, true];2. 생성자 배열생성자 배열은 new Array() 생성자를 사용하여 만듭니다.// 빈 배열 생성const emptyArray = new Array();// 특정 길이의 빈 배열 생성 (초기화 안됨)const prefilledArray = new Array(5);// 특정 값으로 초기화된 배열 생성con..

[자바스크립트 ] 자바스크립트 Array, Set, Map 쉽게 정리하기

1. Array (배열)순서대로 값들을 저장하는 자료구조입니다.쉽게 생각하면, 리스트라고 생각하면 됩니다.여러 값들을 하나의 변수에 담고 싶을 때 사용합니다.const numbers = [1, 2, 3, 4, 5];const fruits = ["사과", "바나나", "오렌지"];2. Set (세트)중복 없이 값들을 저장하는 자료구조입니다.집합이라는 개념으로, 중복된 값은 하나만 저장됩니다.고유한 값들을 관리하는데 유용합니다.const uniqueNumbers = new Set([1, 2, 3, 3, 4]); // 중복된 3은 제거됩니다.console.log(uniqueNumbers); // {1, 2, 3, 4}3. Map (맵)키-값 쌍으로 데이터를 저장하는 자료구조입니다.객체와 비슷하지만, 키를 이용..

[자바스크립트] 옵셔널 체이닝

옵셔널 체이닝은 자바스크립트에서 객체의 프로퍼티에 안전하게 접근할 수 있도록 해주는 강력한 기능입니다. 이 기능은 특히 중첩된 객체 구조에서 특정 프로퍼티가 존재하지 않을 때, 에러 없이 undefined를 반환하여 프로그램의 흐름을 중단시키지 않습니다.옵셔널 체이닝의 핵심안전한 접근: 존재하지 않는 프로퍼티에 접근하려고 할 때 TypeError가 발생하지 않고 undefined를 반환합니다.간결한 코드: if 문 등을 사용하여 프로퍼티 존재 여부를 확인하는 코드를 줄여줍니다.가독성 향상: 코드의 의도를 명확하게 전달하여 유지보수를 용이하게 합니다.다양한 활용 예시1. 깊은 객체 구조에서의 안전한 접근:const user = { address: { street: 'Main Street' }};/..

[자바스크립트] null 병합 연산자

null 병합 연산자란 무엇일까요?null 병합 연산자 ??는 왼쪽 피연산자가 null 또는 undefined일 때 오른쪽 피연산자를 반환하는 논리 연산자입니다. 즉, 왼쪽 값이 "없는" 값일 때만 오른쪽 값을 사용하겠다는 의미입니다.왜 null 병합 연산자가 필요할까요?기존의 || 연산자와의 차이:|| 연산자는 왼쪽 값이 falsy 값(false, 0, '', null, undefined, NaN)일 때 모두 오른쪽 값을 반환합니다.?? 연산자는 오직 null 또는 undefined일 때만 오른쪽 값을 반환합니다.명확한 의도 표현:?? 연산자를 사용하면 코드의 의도를 더 명확하게 나타낼 수 있습니다. 특히 0이나 빈 문자열과 같은 falsy 값을 유효한 값으로 간주해야 하는 경우에 유용합니다.// nu..

[자바스크립트] Logical AND/OR 할당

자바스크립트에서 논리 연산자인 AND(&&)와 OR(||)은 단순히 참/거짓을 판단하는 것뿐만 아니라, 변수에 값을 할당하는 데에도 활용될 수 있습니다. 이를 논리 AND/OR 할당이라고 합니다.기본 개념AND(&&) 할당: 왼쪽 피연산자가 falsy 값(false, 0, "", null, undefined, NaN)이면 왼쪽 피연산자를 그대로 반환하고, truthy 값이면 오른쪽 피연산자를 반환합니다.OR(||) 할당: 왼쪽 피연산자가 truthy 값이면 왼쪽 피연산자를 그대로 반환하고, falsy 값이면 오른쪽 피연산자를 반환합니다.let a = 0;let b = 10;let c;// AND 할당c = a && b; // c는 0 (a가 falsy이므로 a를 반환)// OR 할당c = a || b;..

[자바스크립트] 지수 연산자

지수 연산자 (**)는 좌측 피연산자를 밑으로, 우측 피연산자를 지수로 하는 거듭제곱 연산을 수행하는 연산자입니다. 즉, 밑을 지수만큼 곱한 값을 계산합니다.문법: base ** exponent예시: 2 ** 3은 2를 3번 곱한 값인 8을 의미합니다.왜 지수 연산자가 필요할까요?간결한 표현: Math.pow() 함수를 사용하는 것보다 더 간결하게 거듭제곱을 표현할 수 있습니다.가독성 향상: 수학적인 표현과 유사하여 코드의 가독성을 높입니다.지수 연산자 사용 예시// 기본적인 사용법let result = 2 ** 3; // result는 8console.log(result);// 큰 수 계산let bigNumber = 10 ** 10; // 10의 10승console.log(bigNumber);// 소수..

[자바스크립트] 템플릿 리터럴

템플릿 리터럴은 ES6에서 도입된 새로운 문자열 표현 방식으로, 기존의 따옴표('' 또는 "") 대신 백틱(``)을 사용하여 문자열을 감싸는 방식입니다. 템플릿 리터럴은 단순한 문자열뿐만 아니라, 변수나 표현식을 직접 문자열 안에 삽입하여 더욱 유연하고 가독성 높은 문자열을 만들 수 있도록 해줍니다.템플릿 리터럴의 특징백틱 사용: 템플릿 리터럴은 백틱(``)으로 감싸집니다.여러 줄 문자열: 줄 바꿈을 포함한 여러 줄의 문자열을 간편하게 작성할 수 있습니다.표현식 삽입: ${expression} 형태로 변수나 표현식을 문자열 안에 직접 삽입할 수 있습니다.태그 함수: 템플릿 리터럴 앞에 함수를 붙여 문자열 처리를 커스터마이징할 수 있습니다.템플릿 리터럴 사용 예시let name = '홍길동';let age..

[자바스크립트] 비구조화 할당

비구조화 할당(Destructuring assignment)은 배열이나 객체에서 값을 추출하여 변수에 할당하는 간결하고 효율적인 방법입니다. 기존에는 반복문이나 인덱스를 사용하여 값에 접근했지만, 비구조화 할당을 사용하면 한 번에 여러 값을 변수에 할당할 수 있어 코드를 더욱 간결하게 만들 수 있습니다.비구조화 할당의 장점코드 가독성 향상: 복잡한 객체 구조에서 필요한 값만 추출하여 사용할 수 있어 코드를 더욱 명확하게 만들 수 있습니다.개발 생산성 향상: 반복적인 코드를 줄이고, 간결한 문법으로 값을 할당할 수 있어 개발 효율을 높입니다.함수 파라미터: 함수의 파라미터로 비구조화 할당을 사용하여 객체를 해체하고 값을 추출할 수 있습니다.배열, 객체에서 값 추출: 배열이나 객체에서 원하는 값만 선택적으로..

[자바스크립트] 모듈 시스템

자바스크립트 모듈 시스템은 코드를 작은 단위로 분리하여 관리하고 재사용성을 높이는 시스템입니다. 마치 레고 블록처럼 각 모듈을 독립적인 기능 단위로 만들어 필요에 따라 조립하여 사용할 수 있습니다. 이를 통해 코드의 복잡성을 줄이고 유지보수를 용이하게 만들 수 있습니다.왜 모듈 시스템이 필요한가요?코드 재사용성: 한 번 작성한 코드를 여러 곳에서 재사용할 수 있어 개발 생산성을 높입니다.코드 관리 용이성: 코드를 작은 단위로 분리하여 관리하기 때문에 코드의 복잡성을 줄이고, 특정 부분만 수정해야 할 경우 다른 부분에 영향을 미칠 가능성을 줄입니다.협업 효율 증대: 여러 개발자가 각자 모듈을 개발하여 합칠 수 있으므로 협업이 용이합니다.의존성 관리: 모듈 간의 의존성을 명확히 관리하여 예상치 못한 문제 발..

[자바스크립트] 숫자 구분자

자바스크립트 숫자 구분자(Numeric separator)는 긴 숫자를 읽기 쉽게 만들기 위해 숫자 사이에 언더바(_)를 삽입하는 기능입니다. 특히 큰 숫자를 다룰 때 유용하며, 코드의 가독성을 향상시키는 데 도움을 줍니다.왜 숫자 구분자가 필요할까요?가독성 향상: 긴 숫자를 끊어서 표현하여 숫자를 더 쉽게 인식할 수 있도록 합니다.오류 감소: 숫자를 입력하거나 복사할 때 발생할 수 있는 오타를 줄여줍니다.국제적인 표기 방식: 많은 국가에서 숫자를 3자리마다 쉼표(,)로 구분하는 표기법을 사용합니다. 숫자 구분자는 이러한 국제적인 표기 방식과 유사합니다.숫자 구분자 사용 예시// 숫자 구분자 사용const billion = 1_000_000_000;console.log(billion); // 100000..

728x90