728x90
- [JavaScirpt] class 생성자 / 매개변수KIMJAVAN자바스크립트에서 클래스는 생성자(constructor)를 사용하여 객체가 생성될 때 초기값을 받아옵니다. 만약에 클래스에서 다른 형식의 정보를 받을 수 있도록 하려면, 생성자에서 매개변수를 유연하게 설정하거나 조건부 로직을 추가하는 방법을 사용할 수 있습니다.1. 매개변수에 기본값 설정하기먼저, 클래스 생성자에서 매개변수로 받는 값을 유연하게 설정할 수 있어요. 예를 들어, 매개변수의 개수나 형식이 다르더라도 기본값을 설정하거나, 조건에 따라 다른 값을 처리할 수 있습니다.예시: 다양한 형식의 데이터를 받는 생성자class Info { constructor(a, b, c = '기본값', d = '추가값') { this.a = a; // 필수값 this.b = b; // 필수값 thi..
- 2025-01-23 16:21:41
- [JavaScript] thisKIMJAVAN1. 일반 함수에서의 this일반 함수에서 this는 함수를 호출한 객체를 가리킵니다. 하지만 **엄격 모드(strict mode)**에서는 this가 undefined로 설정될 수도 있습니다.예시 1: 일반 함수에서의 thisfunction greet() { console.log(this); // `this`는 전역 객체를 가리킴 (브라우저에서는 `window` 객체)}greet(); // 일반적으로 `window` 객체를 출력함이 경우, this는 전역 객체인 window를 가리킵니다. 함수가 객체에 소속되지 않고 일반적으로 호출되었기 때문이에요.2. 객체의 메서드에서의 this객체의 메서드 내에서 this는 해당 메서드를 호출한 객체를 가리킵니다.예시 2: 객체 메서드에서의 thisconst ..
- 2025-01-23 16:15:48
- [JavaScript] class 문법KIMJAVAN1. 클래스란 무엇인가요?클래스는 **"객체를 만들기 위한 설계도"**입니다. 이 설계도를 기반으로 여러 객체를 만들 수 있어요.예를 들어, 사람을 나타내는 Person 클래스를 만들면, 이 클래스를 이용해서 여러 사람 객체를 만들 수 있습니다.2. 클래스 만들기class Person { // 생성자: 객체를 만들 때 기본적인 값을 설정해주는 곳 constructor(name, age) { this.name = name; // name은 객체의 이름 this.age = age; // age는 객체의 나이 } // 메서드: 객체가 할 수 있는 행동을 정의 greet() { console.log(`안녕하세요, 제 이름은 ${this.name}이고, 나이는 ${this.age}..
- 2025-01-23 16:04:12
- [HTML + JavaScript] HTML5, JavaScript ES6에서 추가된 문법KIMJAVANJavaScript ES6 (ECMAScript 2015)에서 새로 추가된 주요 문법let과 const:let: 블록 스코프를 가진 변수 선언 (기존 var는 함수 스코프).const: 상수 선언, 한 번 값이 할당되면 재할당할 수 없음.let x = 10;const y = 20; 2. 화살표 함수 (Arrow Functions):function 키워드를 사용하지 않고 간결하게 함수를 작성할 수 있게 해줍니다.this 바인딩을 다르게 처리하므로, 다른 함수 내에서 사용시 유용합니다.const sum = (a, b) => a + b; 3.템플릿 리터럴 (Template Literals):문자열을 만들 때 ${}를 사용하여 변수나 표현식을 삽입할 수 있습니다.멀티라인 문자열도 쉽게 다룰 수 있습니다.cons..
- 2025-01-23 15:46:05
- [JavaScript] 제곱근 판별KIMJAVANfunction solution(n) { const sqrt = Math.sqrt(n); if (Number.isInteger(sqrt)) { return (sqrt + 1) ** 2; } else { return -1; }}function solution(n) { // 제곱근 계산 const sqrt = Math.sqrt(n); // 제곱근이 정수인지 확인 if (Number.isInteger(sqrt)) { // 정수라면 (sqrt + 1)의 제곱 반환 return (sqrt + 1) ** 2; } else { // 정수가 아니라면 -1 반환 return -1; }}..
- 2025-01-16 16:15:53
- [JavaScipt] 임의의 숫자를 큰 것 부터 작은 순으로 재정렬하기KIMJAVANQ. if 정수 n 이 289752 라면, 987522로 정렬하는 함수를 제작하여라function solution(n) { // 1. 숫자를 문자열로 변환하여 자릿수를 배열로 나눕니다. let digits = String(n).split(''); // 2. 자릿수를 내림차순으로 정렬합니다. digits.sort((a, b) => b - a); // 3. 정렬된 배열을 문자열로 합친 후 숫자로 변환하여 반환합니다. return Number(digits.join(''));}
- 2025-01-16 15:36:00
- [JavaScript] let, var, const / promise / 동기, 비동기KIMJAVAN1. let, var, const 차이var스코프: 함수 스코프 (함수 내에서만 유효).재선언: 동일한 이름으로 다시 선언 가능.초기화: 선언 전에 값을 참조하면 undefined (호이스팅됨).특징: 블록 스코프를 무시하고 재선언이 가능하여 예기치 않은 버그가 발생할 수 있음.var x = 10;if (true) { var x = 20; // 같은 변수를 덮어씀}console.log(x); // 20let스코프: 블록 스코프 (중괄호 {} 내에서만 유효).재선언: 동일한 이름으로 다시 선언 불가능.초기화: 선언 전에 참조하면 에러(ReferenceError).특징: 재할당은 가능하지만 재선언은 불가.let y = 10;if (true) { let y = 20; // 별도의 스코프에서 선언 cons..
- 2025-01-16 15:12:14
- [JavaScript] for...of / for...in 문 차이KIMJAVAN사용 방법순회 대상키/인덱스 다루기값 다루기for...of배열, 문자열, Set 등❌✅for...in객체, 배열(키 순회)✅ (키/인덱스)간접적으로 가능Object.entries() + for...of객체✅ (키와 값)✅ (키와 값)Array.entries() + for...of배열✅ (인덱스와 값)✅ (값)
- 2025-01-13 17:58:48
- [JavaScript] 퀵 정렬KIMJAVAN퀵 정렬 (Quick Sort)퀵 정렬은 **분할 정복 알고리즘 (Divide and Conquer)**의 일종으로, 배열을 **"피벗"**을 기준으로 나누어 정렬하는 방식입니다.다양한 효율적인 정렬 알고리즘 중에서 매우 빠른 성능을 자랑하며, 평균 시간 복잡도는 **O(nlogn)O(n \log n)O(nlogn)**입니다.동작 원리피벗 선택 (Pivot Selection):배열에서 임의의 요소를 피벗(pivot)으로 선택합니다.분할 (Partitioning):피벗을 기준으로, 피벗보다 작은 값은 왼쪽, 큰 값은 오른쪽으로 배치하여 배열을 두 개의 부분으로 나눕니다.재귀적 정렬 (Recursion):나눈 두 부분에 대해서 각각 퀵 정렬을 다시 수행합니다. 이 과정을 배열이 정렬될 때까지 반복합니다.병..
- 2025-01-11 18:19:39
- [JavaScript] 합병정렬KIMJAVAN합병 정렬 (Merge Sort)합병 정렬은 **분할 정복 알고리즘 (Divide and Conquer)**의 일종으로, 큰 문제를 작은 문제로 나눈 후 그 결과를 합쳐서 해결하는 방식으로 동작합니다. 이 알고리즘은 매우 효율적이며, 시간 복잡도가 **최악의 경우에도 O(nlogn)O(n \log n)O(nlogn)**입니다.동작 원리분할 (Divide):배열을 반으로 나눕니다. 이 과정을 배열의 크기가 1이 될 때까지 재귀적으로 반복합니다.정복 (Conquer):배열이 하나의 요소만 남을 때까지 분할한 후, 각 배열을 정렬합니다.병합 (Merge):두 개의 정렬된 배열을 하나의 정렬된 배열로 합칩니다.이때, 두 배열을 비교하면서 더 작은 값을 차례대로 새로운 배열에 넣습니다.장점과 단점장점:안정적인 ..
- 2025-01-11 18:07:14
- [JavaScript] 삽입정렬KIMJAVAN삽입 정렬 (Insertion Sort)삽입 정렬은 각 요소를 적절한 위치에 삽입하며 정렬하는 방식으로 동작하는 간단한 정렬 알고리즘입니다.카드 게임에서 손에 들고 있는 카드를 정렬하는 방식과 비슷하다고 생각하면 됩니다.동작 원리배열의 두 번째 요소부터 시작합니다.현재 요소를 이전 요소들과 비교하여, 적절한 위치에 삽입합니다.이 과정을 배열 끝까지 반복하여 정렬을 완성합니다.장단점장점:데이터가 거의 정렬되어 있는 경우 매우 빠르며, 최선의 경우 O(n)O(n)O(n)입니다.추가 메모리를 사용하지 않는 **제자리 정렬 (In-Place Sort)**입니다.단점:데이터가 정렬되어 있지 않을 때는 비교와 이동이 많아져 O(n2)O(n^2)O(n2)의 성능을 보입니다.적합한 경우:데이터 크기가 작거나, 이미 정..
- 2025-01-11 18:03:39
- [JavaScript] 선택정렬KIMJAVAN선택 정렬 (Selection Sort)선택 정렬은 가장 작은 값을 선택해 배열의 맨 앞에 놓는 과정을 반복하며 배열을 정렬하는 간단한 알고리즘입니다."최솟값을 찾아서 제자리로 옮긴다"는 점에서 이름이 유래되었습니다.동작 원리최솟값 찾기: 배열에서 아직 정렬되지 않은 부분의 최솟값을 찾습니다.교환: 찾은 최솟값을 현재 정렬 위치의 첫 요소와 교환합니다.반복: 배열이 정렬될 때까지 1~2 단계를 반복합니다.장단점장점: 구현이 매우 쉽다. 데이터 이동 횟수가 적어, 교환이 적은 환경에 적합하다.단점: 시간 복잡도가 비효율적이다 (O(n2)O(n^2)O(n2)).적합한 경우: 데이터 양이 적거나 교환 비용이 높은 경우.예시 코드 (JavaScript로 구현)1. 오름차순 선택 정렬const selectionS..
- 2025-01-11 17:32:09
728x90
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)