개발/JavaScript13 [JavaScript] await? return await? return? 필자의 경우 nestjs로 백앤드를 개발하고 있는데 개발을 하다 보면 비동기 함수를 사용하는 경우가 많고 그럼 async 선언을 많이 하는데 이 함수들을 사용할 때 return에 대해서 어떻게 처리하는 게 올바른가에 대한 생각을 자주 하게 된다. 그럴 때마다 구글에서 검색하면 어떤 외국 원문이 굉장히 잘 설명되어 있고 그 글을 해석한 글들이 굉장히 많이 있기 때문에 볼 때마다 이해했다고 착각? 하고 그 순간만 넘기다 보니 똑같은 주제를 3번 이상 찾아보고 있다는 걸 느꼈고 내용은 같더라도 직접 정리해서 내 거로 만들고 다시 검색하는 일을 없애기 위해 작성하는 글이다!! 부디 기존 글들과 같다고 나쁘게 생각하지 마세요!!! 이 글을 보시는 분들도 이러한 생각들을 고민한 적이 있다면 주저 없이 작성하고 정리.. 2023. 3. 25. [TypeScript] 타입 공간과 값 공간의 심벌 구분하기! 최근에 TypeScript 관련 단톡방에서 type과 interface 타입을 정의하고 그 값을 조건문 분기 하는 질문 글이 올라왔는데 나도 그 문제에 대해 풀어보려고 여러 가지 시도를 하다 보니 내가 TypeScript의 class, interface, type 등 아직 잘 모른다고 생각해 이펙티브 타입스크립트 책을 확인하던 중에 나에게 딱 필요한 부분이 있어서 이펙티브 타입스크립트 아이템 8을 토대로 글을 작성하려 한다. 앞으로 얘기하는 심벌은 ES6에서 추가된 자료형 심벌(symbol)이 아니라 그냥 그 값, 상징 실제 영어단어의 symbol을 뜻한다고 생각하면 좋을 것이다. 책에서는 타입스크립트 심벌(symbol)은 타입 공간이나 값 공간 중의 한 곳에 존재한다고 말한다. 그래서 심벌은 이름이 같.. 2023. 2. 26. [JavaScript] 옵셔널 체이닝(Optional chaining) 사용법과 주의할점 자바스크립트에 Optional Chaining을 사용하면 함수나 객체의 속성을 호출할 때 호출하는 값이 정의되지 않았거나 falsy 한 값인 경우 오류를 발생시키는 대신 undefined를 반환하게 해 주어 예상치 못한 런타임 에러를 막아준다. const adventurer = { name: 'Alice', cat: { name: 'Dinah' } }; const dogName = adventurer.dog?.name; console.log(dogName); // Expected output: undefined console.log(adventurer.someNonExistentMethod?.()); // Expected output: undefined 위 예시처럼 실제 존재하지 않는 객체의 dog를 호.. 2023. 2. 13. [JavaScript] call by value, call by reference, call by sharing 얼마 전 다른 글 정리하면서 call by value와 call by reference관련해서 보게 되었는데 생각해 보니 javascript에서는 어떻게 돌아가는지 명확하게 공부하거나 찾아보지는 않고 그냥 원시형, 참조형으로 값에 어떻게 영향이 가는지 정도만 알고 사용하고 있어서 좀 더 알아보니 새로운 개념들을 알게 되어서 정리한다!! call by value, call by reference란?? 함수를 호출할 때 argument 값의 타입이 어떤 것이냐 하는 것인데 argument가 기본형이면 call by value, 참조형이면 call by reference이다. call by value 원시형 값의 의한 호출 원본 값을 복사하여 parameter로 전달 call by reference 참조형 값.. 2023. 2. 7. 이전 1 2 3 4 다음