- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jsonwebtoken
- wil
- atlas
- Node.js
- Nodejs
- css
- sequelize
- EC2
- mongoose
- single quote
- AWS
- nginx
- certbot
- MYSQL
- flutter
- mongodb
- til
- Find
- findByIdAndDelete
- clipBehavior
- double quote
- async
- moment
- RDS
- TailwindCSS
- https
- await
- Express
- TypeScript
- JavaScript
목록JavaScript (13)
기억 휘발 방지소
Promise Promise는 비동기 연산이 종료된 이후 결과를 알기 위해 사용하는 객체이다. Callback Hell 때문에 ES6에서 도입한 또 다른 비동기 처리 패턴이다. Promise 생성 Promise는 new Promise()로 생성한다. 비동기 작업을 수행할 Callback 함수를 인자로 전달받아서 사용한다. new Promise에 전달되는 함수는 executor(실행자 혹은 실행함수)라고 부른다. executor는 new Promise가 만들어질 때 자동으로 실행된다. 인자로는 resolve와 reject를 받는다(resolve와 reject는 자바스크립트에서 자체 제공하는 Callback이다). 대신 executor에서 비동기 작업이 끝나면 바로 두 가지 Callback 중 하나를 실행한..
자바스크립트로 알고리즘을 풀다가 문자열을 숫자로 바꿔야할 경우가 생겨서 찾아본 결과 두 가지 방법이 있었다. 첫 번째는 parseInt()를 사용하는 것이고 두 번째는 Number()를 사용하는 방법이다. 그래서 이번 글에서 parseInt()와 Number()의 차이점을 간단하게 알아보고자한다. 공통점으로는 일단 둘 다 문자열을 숫자로 바꿔주는 메소드라는 것이다. 그런데 Number()는 숫자가 아닌 경우 NaN을 반환하지만 parseInt()는 문자열이 숫자로 시작하는 경우 숫자가 끝날 때까지만 형변환을 하여 반환한다. 아래 예제를 보면 더 쉽게 이해간다. Number() 문자열 '1000'은 Number('1000')하면 숫자로 잘 변환이 되지만 문자열 '1000원'은 '원' 때문에 숫자로 변환되지..
이번 글에서는 JavaScript의 이벤트 루프에 대해 정리해보려고 한다. javascript.info에서는 이벤트 루프를 다음과 같이 설명하고 있다. 이벤트 루프는 태스크가 들어오길 기다렸다가 태스크가 들어오면 이를 처리하고 처리할 태스크가 없는 경우엔 잠드는, 끊임없이 돌아가는 자바스크립트 내 루프 이벤트 루프의 동작방식을 대충 그려봤다. 자바스크립트에서 함수를 호출하게되면 Call Stack에 쌓인다. 쌓인 역순으로 실행하게 된다. setTimeout, AJAX 또는 DOM event 함수를 실행하면 Call Stack에서 Web API로 보내고 정해진 시간 등이 지나면 Task Queue로 보내게 되고 순차적으로 쌓인다. Task Queue에 쌓인 Callback들은 Call Stack이 비었을 ..
호출스택이란? 호출 스택은 현재 어떤 함수가 동작하고 있는지, 그 함수 내에서 어떤 함수가 동작하는지, 다음에 어떤 함수가 호출되어야하는지 등을 제어한다. MDN 호출 스택은 스택이라는 단어에서 알 수 있듯이 LIFO(Last In First Out) 구조이다. 호출되는 모든 함수는 호출 스택에 추가되고 추가되는 역순으로 실행되는 구조이다. 예제 function a() { b(); console.log("aaa"); } function b() { c(); console.log("bbb"); } function c() { console.log("ccc"); } a(); 위의 코드를 실행했을 때 결과는 어떻게 나올까? 정답은 아래와 같다. ccc bbb aaa 위 코드는 다음과 같이 실행된다. 호출스택은 아..
1. Array.from() MDN에서 Array.from()을 다음과 같이 정의한다. Array.from() 메서드는 유사 배열 객체나 반복 가능한 객체를 얕게 복사해 새로운 Array 객체를 만든다. const set = new Set([1, 2, 3]); const arr = Array.from(set); console.log(set); console.log(arr); 결과 Set(3) { 1, 2, 3 } [ 1, 2, 3 ] 2. Spread Operator Spread Operator는 ES6의 문법으로 배열이나 문자열과 같은 반복가능한 객체를 하나씩 펼쳐서 리턴한다. ... 와 같이 점 3개로 표현한다. const set = new Set([1, 2, 3]); const arr = [...s..
함수 선언식 함수 선언식은 흔히 아래와 같은 형태로 작성한다. function 함수이름() {...} summarizeUser라는 함수를 선언하는 예제이다. let name = "Kim"; let age = 29; let hasHobbies = true; function summarizeUser(userName, userAge, userHasHobby) { return ( "Name is " + userName + ", age is " + userAge + " and the user has hobbies: " + userHasHobby ); } 함수 이름을 호출하여 사용한다. console.log(summarizeUser(name, age, hasHobbies)); // Name is Kim, age i..