제너레이터 함수(generator function; 줄여서 제너레이터) 제너레이터 함수는 여러 개의 값을 생성하는 편리한 기능을 제공합니다. 제너레이터 함수를 이용하면 값을 생산하는 속도도 정교하게 조절할 수 있습니다. 제너레이터 함수는 소비자가 요청해야만 다음 값을 계산하기 때문에 무한의 목록 생성기 같은 까다로운 기능을 제공할 수 있습니다. 제너레이터 함수는 아래처럼 동작합니다. function* createFibonacciGenerator() { // ① let a = 0 let b = 1 while (true) { // ② yield a; // ③ [a, b] = [b, a + b] // ④ } } let fibonacciGenerator = createFibonacciGenerator(); fi..
TypeScript 실행 타입스크립트 설치 이전에 node가 설치되어 있어야 합니다. node 설치 방법은 아래 글을 참고해 주세요:) https://cozy-linda.tistory.com/entry/TypeScript-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%82%AC%EC%9A%A9 TypeScript 설치 JavaScript 실행 환경 설치 TypeScript를 사용하려면, JavaScript 실행 환경이 있어야 하며, node.js와 browser가 필요합니다. Node.js Node.js는 Chrome's V8JavaScript Engine을 사용하여, JavaScript를 해석하고, OS 레벨에서 cozy-linda.com 1. 디렉터리 생성 cmd 창을 열고 아래의 명령어..
this의 타입 this의 값은 함수를 어떻게 호출했는지에 따라 달라지는데 이는 JAvaScript 코드를 이해하기 어렵게 만드는 고질적인 문제 중 하나입니다. (따라서 많은 개발팀에선 클래스 메서드를 제외한 다른 모든 곳에서 this 사용을 금한다고 합니다.) this가 자주 문제를 일으키는 원인은 할당 방법에 있습니다. 메서드를 호출할 때 this는 점 왼쪽의 값을 갖는다는 것이 일반적인 원칙입니다. let x = { a() { return this } } x.a() // a()의 바디 안에서 this는 객체 x 하지만 호출이 일어나기 전 어느 시점에서 a를 다시 할당하면 결과가 달라집니다. let a = x.a a() // 이제 a의 바디 안에서 this는 정의되지 않은 상태 아래처럼 날짜의 타입을..
call, apply, bind 함수를 괄호 ()로 호출하는 방법도 있지만, JavaScript에선 두 가지 방법을 추가로 제공합니다. function add(a: number, b: number): number { return a + b } add(10, 20) // 30으로 평가 add.apply(null, [10, 20]) // 30으로 평가 add.call(null, 10, 20) // 30으로 평가 add.bind(null, 10, 20)() // 30으로 평가 apply는 함수 안에서 값을 this로 한정하며 두 번째 인수를 펼쳐서 함수에 매개변수로 전달합니다. call도 같은 기능을 수행하지만, 인수를 펼쳐서 전달하지 않고, 순서대로 전달한다는 점이 다릅니다. 비슷한 방식으로 bind도 th..