const num = 2; const numObj = { num: 2 }; 이 코드를 보면, num 변수에는 2가 들어있지만, numObj에는 { num:2 } 오브젝트가 메모리에 들어 있는 주소인 참조값이 할당된다. 예를 들어.. {num:2} 오브젝트의 주소가 x123이라고 한다면 x123이 할당된다는 것이다. 배열로 연결해서 생각해 보자. const array = [ { id: '1', count: 0 }, { id: '2', count: 0 }, ]; 여기서 생성된 오브젝트는 id가 1인 것, id가 2인 것, 그리고 배열 자체의 오브젝트 이렇게 해서 총 3개의 오브젝트가 생성된다. 그렇다면, const array = [ { id: '1', count: 0 }, { id: '2', count: 1..
이 글은 인프런의 TypeScript 입문 - 기초부터 실전까지 강의를 듣고 정리한 글입니다. 첫 번째 장점: 에러의 사전 방지 이러한 자바스크립트 코드가 있다고 해 보자. 이런 코드는, 제대로 정의가 되었는지, 오류가 없는지 등을 브라우저를 실행해야지만 확인할 수 있다. 반면에 이렇게, JSDoc 방식으로 타입 정의를 하게 되면 response.를 쳤을 때 뒤에 이런 식으로 지정해둔 형태를 사용할 수 있게 된다. 34행의 response.address.city의 경우, cit 이런식으로 의도적으로 오타를 작성한다면 자바스크립트에서는 별다른 alert가 없지만 타입스크립트에서는 있지 않은 속성(property)이라는 오류를 코드 상에서 띄운다. 이것이 타입스크립트가 자바스크립트에 비해 가진 장점이라고 할..
프로미스 자바스크립트와 노드에서는 주로 비동기를 접한다. 특히 이벤트 리스너를 사용할 때 콜백 함수를 자주 사용한다. ES2015부터는 자바스크립트와 노드의 API들이 콜백 대신 프로미스(Promise) 기반으로 재구성되며, 악명 높은 콜백 지옥 현상을 극복했다는 평가를 받고 있따. 프로미스는 반드시 알아둬야 하는 객체이므로 여기뿐만 아니라 다른 자료들을 참고해서라도 반드시 숙지해야 한다. 프로미스는 다음과 같은 규칙이 있다. 먼저 프로미스 객체를 생성해야 한다. const condition = true; // true면 resolve, false면 reject const promise = new Promise((resolve, reject) => { if (condition) { resolve("성공"..