본문 바로가기

☁️ 구름 X kakao DeepDive41

[JavaScript] Iterator(반복기) & Generator(생성기) 1. IteratorIterator 함수를 임의로 생성해보자function makeIterator(numbers) { let nextIndex = 0; return { next: function () { return nextIndex  결과Iterator는 value랑 done 속성을 가지는 객체를 반환한다.[Symbol.iterator]() - 기본 이터레이터 반환 메소드[Symbol.iterator]()을 사용하면 반복 가능한 값을 반복기로 생성 가능.const numbersArray = [1,2,3];const numbersIterator = numbersArray[Symbol.iterator]()console.log(numbersIterator.next(.. 2025. 1. 9.
[JavaScript] Symbol Symbol Type은 무엇인가요?2015년 ES6에서 새로 추가된 원시 타입.유니크한 식별자를 만들기 위해서 사용된다. Symbol 값을 생성하는 방법은?Symbol 은 유니크한 식별자를 위해 사용Symbol은 보이는게 같더라도 내부에서는 다른 값을 가진다.const sym1 = Symbol();const sym2 = Symbol();console.log(sym1 === sym2); // falsedescription을 줄 수 있다 - 뭔지 구분할 수 있음디버깅 할 때 사용 할 수 있다. 이게 없다면 어떤 심볼인지 알기 어렵다.const sym1 = Symbol();const sym2 = Symbol();const sym3 = Symbol('hi');console.log(sym1) // Symbol().. 2025. 1. 9.
[JavaScript] 비동기요청에서 Callbacks, Promise 그리고 Async/Await 자바스크립트는 싱글스레드그래서 하나의 일을 할 때 하나밖에 못함 → 그런데 그 하나의 일이 오래 걸리는 일이면?→ 다른 작업들은 그 오래걸리는 일이 끝날 때 까지 오~~래 기다려야한다.⇒ 이러한 문제점을 해결하기 위해서 비동기로 어떠한 일을 수행하게 된다.만약 비동기 요청이 여러 개 있을 때 하나의 요청이 다른 요청의 결과에 의존한다면? 위의 소스코드에서 처럼 둘 다 비동기 요청을 보내는데 두 번째 요청에서 첫 번째 요청의 결과가 필요할 수가 있다.하지만, 둘 다 병렬적으로 요청을 보내기 때문에 response1을 가지기 전에 두 번째 요청이 보내지게 된다.⇒ 이 문제를 어떻게 해결할까? Callback 함수, Promise, Async Await 를 이용하는 세 가지 방법이 있다.Callback 콜백 .. 2025. 1. 9.
[JavaScript] Prototype 그리고 ES6 Classes, Sub Class(Inheritance), super()란? PrototypehasOwnProperty는 어디서 나왔나요?현재 user 객체 변수에는 두 개의 속성 (name, age)만 있는데, hasOwnProperty는 어디서 나온것인가? 모든 객체는 global Object prototype을 가진다. 그러면 이 프로토타입은 무엇일까?프로토타입은 자바스크립트 객체가 다른 객체로부터 메서드와 속성을 상속받는 매커니즘을 말함.이것을 프로토타입 체인(Prototype chain)이라고도 말함.위에서 보듯이 prototype object 안에 있는 hasOwnProperty를 상속 받아 사용하고있다.⇒ 이렇게 함으로써 더 적은 메모리를 사용할 수가 있고 코드를 재사용 할 수 있다.  new를 이용해 클래스를 객체로 만들 수 있다.Object.create()를 이용.. 2025. 1. 9.
[JavaScript] OOP, 다형성 기억이 휘발되기 전에제일 최근에 공부한 내용부터 업로드해야겠다.OOP(Object-oriented programming)란?객체 지향 프로그래밍 (OPP)는 Java 및 C++을 비롯한 많은 프로그래밍 언어의 기본이 되는 프로그래밍 패러다임.객체 지향 프로그래밍은 여러개의 독립된 단위 “객체”들의 모임으로 컴퓨터 프로그램을 파악한다 ⇒ 객체 지향 프로그래밍은 객체들의 모임이다.객체 지향 프로그래밍이 나오기 이전: 명령어의 목록을 나열(절차지향) 하는 기능 구현을 목적으로 작성했음⇒ 코드를 길게 작성하다보면 알아보기 힘든 복잡한 코드 생성    ⇒ 하나의 문제 해결을 위한 독립된 단위인 객체로 만듬→ 알아보기 쉽고, 재사용성 높아졌음.  왼쪽 사진 예시car 에 대한것들animal에 대한것들 모아두었음  .. 2025. 1. 9.
[JavaScript] 조건부 삼항 연산자 조건부 삼항 연산자 (Conditional Operator)간단하게 if 문을 한줄로 적은것이다 라고 생각하면 된다. "a가 True면 a를 할당하고, True가 아니면 b를 할당"하는 코드를 작성해보자. 1. if 문으로 작성if (a) { a = "a";} else { a = "b";} 2. 이걸 삼항연산자로 한줄에 작성하면a ? a = "a" : a = " b" 이다. "얘 진짜임 ? ㅇㅇ 트루 : ㄴㄴ 거짓 "이라고 보면된다. 끝 2025. 1. 9.