| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- JavaScript
- TypeScript
- JSON.stringify
- nodemailer
- AGGREGATE
- Map
- 자바스크립트
- 이메일 전송
- 중첩 구조 분해
- react-slick
- 구조 분해 할당
- MongoDB
- nestjs
- logstash
- context switch
- 위크맵
- 참조에 의한 객체 복사
- 로그스태시
- nextjs
- 카카오로그인
- 캐러셀
- nest
- javacript
- 위크셋
- JSON.parse
- DB
- 화살표 함수
- Mongoose
- 객체
- 카카오 소셜로그인
- Today
- Total
목록Language/JavaScript (46)
뚜sh뚜sh
splice - 첫 번째 매개변수는 조작을 가할 첫 번째 요소를 가리키는 인덱스임 - 두 번째 매개변수는 deleteCount로, 제거하고자 하는 요소의 개수를 나타냄 - elem1, ..., elemN은 배열에 추가할 요소를 나타냄 arr.splice(index[, deleteCount, elem1, ..., elemN]) slice - start 인덱스부터 (end를 제외한) end 인덱스까지의 요소를 복사한 새로운 배열을 반환함 - arr.slice()는 인수를 하나도 넘기지 않고 호출하여 arr의 복사본을 만들 수 있음 arr.slice([start], [end]) concat - arr.concat은 기존 배열의 요소를 사용해 새로운 배열을 만들거나 기존 배열에 요소를 추가하고자 할 때 사용함 ..
배열 - 순서가 있는 컬렉션을 저장할 때 쓰는 자료구조 배열 선언 let arr = new Array(); let arr = []; pop.push와 shift.unshift Queue - 큐는 배열을 사용해 만들 수 있는 대표적인 자료구조로, 배열과 마찬가지로 순서가 있는 컬렉션을 저장하는 데 사용함 - 큐에서 사용하는 주요 연산은 아래의 push, shift와 같음 - push : 맨 끝에 요소를 추가함 - shift : 제일 앞 요소를 꺼내 제거한 후 남아있는 요소들을 앞으로 밀어줌 - 큐는 선입선출 자료구조 Stack - 배열엔 두 연산을 가능케 해주는 내장 메서드 push와 pop이 있음 - 배열은 큐 이외에 스택이라 불리는 자료구조를 구현할 때도 쓰임 - 스택에서 사용하는 연산은 아래의 pus..
모든 문자열은 UTF-16을 사용해 인코딩됨 따옴표 - 문자열은 작은 따옴표나, 큰 따옴표, 백틱으로 감쌀 수 있음 - 템플릿 리터럴 : 표현식을 ${...}로 감싸고 이를 백틱으로 감ㅅ싼 문자열 중간에 넣어주면 해당 표현식을 문자열 중간에 쉽게 삽입할 수 있음 - 백틱을 사용하면 문자열을 여러 줄에 걸쳐 작성할 수도 있음 특수 기호 - '줄 바꿈 문자'라 불리는 특수기호 \n을 사용하면 작은 따옴표나 큰 따옴표로도 여러 줄 문자열을 만들 수 있음 - 문자열 내의 따옴표를 사용하기 위해서는 \' 의 형태로 사용해야 함 - 역슬래시 \를 보여주려면 \\ 의 형태로 사용해야 함 문자열의 길이 - length 프로퍼티엔 문자열의 길이가 저장됨 - length는 함수가 아니고, 숫자가 저장되는 프로퍼티라서 뒤에..
모던 자바스크립트는 숫자를 나타내는 두 가지 자료형을 지원함 1. 일반적인 숫자는 '배정밀도 부동소수점 숫자'로 알려진 64비트 형식의 IEEE-754에 저장됨 2. 임의의 길이를 가진 정수는 BigInt 숫자로 나타낼 수 있음 (일반적인 숫자는 2^53 이상이거나 -2^53 이하일 수 없다는 제약 때문에 BigInt 라는 새로운 자료형이 만들어짐) 숫자를 입력하는 다양한 방법 - 자바스크립트에서도 숫자 옆에 'e'를 붙이고 0의 개수를 그 옆에 붙여주면 숫자를 줄일 수 있음 - 즉, 'e'는 e 왼쪽의 수에 e 오른쪽에 있는 수만큼의 10의 거듭제곱을 곱하는 효과가 있음 let billion = 1e9; // 10억, 1과 9개의 0 alert( 7.3e9 ); // 73억 (7,300,000,000)..
원시값 - 원시형 값 - 원시형의 종류는 string, number, bigint, boolean, symbol, null, undefined형으로 총 7가지임 객체 - 프로퍼티에 다양한 종류의 값을 저장할 수 있음 - 중괄호 {}를 사용해 만들 수 있음 - 함수도 객체의 일종임 - 원시값보다 무겁고, 내부 구조를 유지하기 위해 추가 자원을 사용해서 시스템 자원이 많이 소모된다는 단점이 있음 원시값을 객체처럼 사용하기 - 자바스크립트 창안자는 아래와 같은 방법을 사용해 해결책을 모색했음 1. 원시값은 원시값 그대로 남겨둬 단일 값 형태를 유지함 2. 문자열, 숫자, 불린, 심볼의 메서드와 프로퍼티에 접근할 수 있도록 언어 차원에서 허용함 3. 이를 가능하기 위해, 원시값이 메서드나 프로퍼티에 접근하려 하..
객체-원시형으로의 형 변환은 hint를 기준으로 세 종류로 구분할 수 있음 - "string" (alert 같이 문자열을 필요로 하는 연산) - "number" (수학 연산) - "default" (드물게 발생함) 자바스크립트는 형 변환이 필요할 때, 아래와 같은 알고리즘에 따라 원하는 메서드를 찾고 호출함 1. 객체에 obj[Symbol.toPrimitive](hint) 메서드가 있는 지 찾고, 있다면 메서드를 호출함 Symbol.toPrimitive는 시스템 심볼로, 심볼형 키로 사용됨 2. 1에 해당하지 않고 hint가 "string"이라면, obj.toString() 이나 obj.valueOf() 를 호출함 (존재하는 메서드만 실행됨) 3. 1과 2에 해당하지 않고, hint가 "number"나 ..
- 자바스크립트는 객체 프로퍼티 키로 오직 문자형과 심볼형만을 허용함 - Ruby 등의 언어에서 사용되는 '심볼'과는 다름 - 심볼형 값은 다른 자료형으로 암시적 형 변환(자동 형 변환)되지 않음 심볼 - '심볼(symbol)'은 유일한 식별자를 만들고 싶을 때 사용함 - Symbol() 을 사용하면 심볼값을 만들 수 있음 // id는 새로운 심볼이 됩니다. let id = Symbol(); - 심볼을 만들 때 심볼 이름이라 불리는 설명을 붙일 수도 있음 - 심볼 이름은 디버깅 시 아주 유용함 - 설명이 동일한 심볼을 여러 개 만들어도 각 심볼값은 다름 - 설명은 어떤 것에도 영향을 주지 않는 이름표 역할만을 함 // 심볼 id에는 "id"라는 설명이 붙습니다. let id = Symbol("id"); ..
- 옵셔널 체이닝 ?. 을 사용하면 프로퍼티가 없는 중첩 객체를 에러 없이 안전하게 접근 가능 - ?.는 존재하지 않아도 괜찮은 대상에만 사용해야 함 - ?. 앞의 변수는 꼭 선언되어 있어야 함 - ?. 은 읽기나 삭제하기에는 사용할 수 있지만 쓰기에는 사용할 수 없음 옵셔널 체이닝이 필요한 이유 - ?. 이 추가되기 전엔 이런 문제들을 해결하기 위해 && 연산자를 사용했음 옵셔널 체이닝의 등장 - ?. 은 ?. '앞'의 평가 대상이 undefined나 null이면 평가를 멈추고 undefined를 반환함 let user = null; alert( user?.address ); // undefined alert( user?.address.street ); // undefined - 위의 예시를 통해 ?...
생성자 함수 - new와 함께 호출하면 내부에서 this가 암시적으로 만들어지고, 마지막엔 this가 반환됨 1. 함수 이름의 첫 글자는 대문자로 시작함 2. 반드시 'new' 연산자를 붙여 실행함 function User(name) { this.name = name; this.isAdmin = false; } let user = new User("보라"); alert(user.name); // 보라 alert(user.isAdmin); // false new User(...) 를 써서 함수를 실행하면 아래와 같이 동작함 1. 빈 객체를 만들어 this에 할당함 2. 함수 본문을 실행함, this에 새로운 프로퍼티를 추가해 this를 수정함 3. this를 반환함 function User(name) {..
메서드 만들기 - 객체 user에게 인사할 수 있는 능력을 부여해 줌 - 객체 프로퍼티에 할당된 함수를 메서드라고 부름 let user = { name: "John", age: 30 }; user.sayHi = function() { alert("안녕하세요!"); }; user.sayHi(); // 안녕하세요! 메서드 단축 구문 // 아래 두 객체는 동일하게 동작합니다. user = { sayHi: function() { alert("Hello"); } }; // 단축 구문을 사용하니 더 깔끔해 보이네요. user = { sayHi() { // "sayHi: function()"과 동일합니다. alert("Hello"); } }; 메서드와 this - 대부분의 메서드는 객체 프로퍼티의 값을 활용함 - 메..