JavaScript 17

Promise 완벽 정리

Promise Promise는 비동기 동작을 처리하기 위해 ES6에 도입되었다. (처음엔 혁명 느낌) Promise는 클래스다. Promise 클래스를 인스턴스화 해서 promise 객체를 만든다. 반환된 promise로 원하는 비동기 동작을 처리한다. Promise는 일단 state와 resolve, reject 함수를 이해하면 된다. promise 구현하기 let promise = new Promise(function(resolve, reject) { // 여기 비동기 로직을 작성! // 시켜놓고 언제 완료될지 모르는 로직! }); resolve는 성공했을 때 실행할 함수 reject는 실패했을 때 실행할 함수 resolve reject Quiz setTimeout은 비동기이기에 console.log..

JavaScript 2021.08.13

자바스크립트 개발자라면 알아야 할 33가지 개념 정리

1. 콜 스택 함수의 호출을 기록하는 자료구조입니다. 기본적으로 우리가 프로그램 안에서 위치한 곳이죠. 만약 우리가 어떤 함수를 실행시킨다면, 우리는 스택 위에 무언가를 올리는(push) 행위를 하는 겁니다. 그리고 우리가 함수로 부터 반환을 받을 때, 우리는 스택의 맨 위를 가져오는(pop) 것이죠. 2. 힙 오브젝트(객체)들은 힙 내부에 할당됩니다. 힙은 거의 구조화되지 않은 영역(unstructured)의 메모리입니다. 변수와 객체들의 모든 메모리 할당이 여기서 일어나게 됩니다. 3. 큐 자바스크립트 런타임은 메시지 큐를 갖고 있습니다. 메시지 큐는 실행될 콜백함수나 실행될 메시지들에 대한 리스트입니다. 스택이 충분한 공간(capacity)을 갖고 있을 때, 메시지는 큐 밖으로 나오게 되고 메시지가..

JavaScript 2021.03.31

Javascript 코딩테스트를 위한 배열함수

Array.prototype.concat() concat() 메서드는 인자로 주어진 배열이나 값들을 기존 배열에 합쳐서 새 배열을 반환합니다. Array.prototype.entries() entries() 메서드는 배열의 각 인덱스에 대한 키/값 쌍을 가지는 새로운 Array Iterator 객체를 반환합니다. Array.prototype.every() every() 메서드는 배열 안의 모든 요소가 주어진 판별 함수를 통과하는지 테스트합니다. Array.prototype.filter() filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다. Array.prototype.find() find() 메서드는 주어진 판별 함수를 만족하는 첫 번째 요소의 값을 반환..

JavaScript 2021.03.29

this ?

this; // Window {} 명시적으로 this를 바꾸는 함수 메서드 삼총사 bind, call, apply를 사용하면 this가 객체를 가리킵니다. 그냥 함수에서 this가 window를 가리킨다. 그래서 this.name 과 this.age는 window.name, window.age가 되어버린다. 이렇게 new를 붙이면 this가 생성자를 통해 생성된 인스턴스(hero 자신)가 된다. this는 Window 이다. this는 기본적으로 window이지만, 객체 메서드, bind call apply, new일 때 this가 바뀝니다. 그리고 이벤트리스너나 기타 라이브러리처럼 this를 내부적으로 바꿀 수도 있으니 항상 this를 확인해봐야한다. 선언한 function의 this는 항상 windo..

JavaScript 2021.02.24

ForEach, Map, Reduce

javascript에서 forEach, map, reduce 차이점을 알아보자 forEach, map, reduce의 공통점은 배열을 이용한다는 점이다. 배열의 값을 조작해서 원하는 결과값을 도출하는데 의미가 있다. 다른점은 forEach는 문밖으로 리턴값을 받지를 못한다. 아래의 코드를 보자 FOREACH 이 경우는 [2,3,4,5,6]이 들어있는 배열이 출력된다.이 경우 undefined가 출력 된다. 하지만 같은 경우라도 map을 이용하면 다르다. MAP map은 리턴값을 출력할수 있다. 즉 forEach와 map의 큰 차이는 바로 리턴값에 있는 것이다. 성능면에 있어서도 map이 forEach보다 유리하다. 가능하면 map을 사용하는게 좋다. 배열.map((요소, 인덱스, 배열) => { retu..

JavaScript 2021.02.24

Promise - then/catch

Promise 란? Promise 개체는 비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과 값을 나타냅니다. 매개변수 우선 Promise 는 매개변수로 executor 를 받게 됩니다. executor 는 resolve 와 reject 인수를 전달할 실행함수입니다. resolve 와 reject 는 함수로서 호출되면 promise 를 이행하거나 거부합니다. 이 둘을 이용하여 비동기 작업이 모두 끝나면 resolve 를 호출해 이행하고, 중간에 오류가 생기면 reject 를 이용해 거부하게 됩니다. 상태 Promise 는 3가지 상태를 가질 수 있습니다. pedding : 대기 상태로서 아직 resolve 할지 reject 할 지 결정되지 않은 초기의 상태입니다. fullfilled : 이행 상태로서..

JavaScript 2021.02.23