전체 글
[JavaScript_study] 제너레이터(generator)
* 이터러블을 좀 더 실플하게 만드는 방법이 제너레이터(generator)이다. 함수에 *을 붙여주어서 제너레이터를 만든다. yield는 다음 사용자가 next를 호출할 때 까지 기다렸다가 사용자가 next를 호출해야 다음 코드가 실행이 되어서 순회한다. 사용자에게 제어권을 양도한다. next를 호출하기전에 return을 하면 제너레이터가 끝이 나게 된다. throw를 이용해서 error를 던질 수 있다. [ 참고 사항 ] 이터러블과 제너레이터는 거의 구현할 일이 없다. * 제너레이터 예시코드 function* multipleGenerator() { try { for (let i = 0; i < 10; i++) { console.log(i); yield i ** 2; } } catch (error) { ..
[JavaScript_study] 이터러블(iterable)이란?
* iterable하다는건 순회가 가능하다는것이다. [Symbol.iterator](): IterableIterator; 심볼 정의를 가진 객체나, 특정한 함수가 IterableIterator를 리턴한다는것은 "순회 가능한 객체다"라는것을 의미한다. 순회가 가능하면 무엇을 할 수 있는가? 바로 빙글 빙글 도는 반복문, 연산자들을 사용할 수 있다. * 이터레이션 > 반복, 순회 * 이터레이션 프로토콜(Iteration Protocol) > 반복, 순회 가능한 규격, 약속, 인터페이스 * 클래스, 객체는 명사단위로 작명 > Iteration : 반복, 순회 * 규격, 인터페이스는 able를 붙여서 ~ 가능한(형용사)으로 작명 > Iterable : 순회가 가능한 따라서 작명을 보고 명사 : 클래스,객체 //..
[JavaScript_study] 고차함수 (Higher-Order Function)
* 일급객체 (first-class object) 일반 객체처럼 모든 연산이 가능한 것 함수의 매개변수로 전달 함수의 반환값 할당 명령문 동일 비교 대상 * 일급함수 (first-class function) 함수가 일반 객체처럼 모든 연산이 가능한 것 함수의 매개변수로 전달 함수의 반환값 할당 명령문 동일 비교 대상 [ 함수형 프로그래밍 ] 함수단위로 엮어 나가는것 for loop, if문을 이용한 이용한 절차지향이 아닌 어떤 특정한 일을 수행하는 함수끼리 엮어서 연결해놓은것 함수자체를 순수함수로 만드는것이 중요하다. 순수함수란?? 함수안에서 불변성을 유지하는것 불변성이란?? 함수안에서 전달받은 매개변수나 또는 함수밖에 있는 특정한 상태를 함수내부에서 수정하지않고 전달받은 인자를 통해서 함수에서 특정한 ..
[JavaScript_study] shallow copy
// 얕은 복사 Shallow Copy - 객체는 메모리 주소 전달 (Call by reference) // 자바스크립트에서 복사할때는 항상 얕은 복사가 이루어짐! // 아래와 같은 방법은 통해 복사를 해야한다. // Array.from, concat, slice, spread(...), Object.assign const pizza = { name: '피자', price: 2, owner: { name: 'Ellie' } }; const ramen = { name: '라면', price: 3 }; const sushi = { name: '스시', price: 1 }; const store1 = [pizza, ramen]; const store2 = Array.from(store1); console.lo..
[JavaScript_study] 자료구조 및 배열
* 자료구조 (Data Structure) > 여러가지의 객체를 특정한 자료구조에 담아둘 수 있다. : ex) 사람들의 집합체, 또는 줄을 서서 기다리는 사람들 * 배열 생성 방법 // 배열 생성 방법 let array = new Array(3); console.log(array); array = new Array(1, 2, 3); console.log(array); array = Array.of(1, 2, 3, 4, 5); console.log(array); const anotherArray = [1, 2, 3, 4]; console.log(anotherArray); array = Array.from(anotherArray); console.log(array); // 일반적으로 배열은 동일한 메모리 크..
[JavaScript_study] 유용한 함수들
* 불리언 함수들 const isTrue1 = true; const isTrue2 = new Boolean(true); console.log(isTrue.valueOf()); * Falsy > 0 > -0 > null > NaN > undefined > '' * Truthy > 1 > -1 > '0' > 'false' > [] > {} * 숫자 함수들 const num1 = 123; const num2 = new Number(123); console.log(typeof num1); console.log(typeof num2); console.log(Number.MAX_VALUE); console.log(Number.MIN_VALUE); console.log(Number.MAX_SAFE_INTEGER); ..