본문 바로가기

공부 정리/You Don't Know Js20

[YDKJ] Get Started - Chapter 4 - 1 요약 Chapter 4: The Bigger Picture 이번 4장에서는 JS언어의 구성을 세가지 주요 기둥으로 나눌것이다. 부록에 있는 연습을 건너뛰지 마라!! Pillar 1: Scope and Closure 변수를 스코프단위로 구성하는 것은 모든 언어에서 가장 기초적인 특성 JS는 호이스팅 때문에, 선언된 모든 변수는 스코프의 시작부분에서 선언된 것처럼 처리됨. let/const는 TDZ를 통해 실제로 사용할 수 없는 구간을 만듬. 함수가 외부 스코프의 변수를 참조하고, 스코프 변수에 대한 엑세스를 유지하는 것. => 클로저 자세한건 다음 책에서... Pillar 2: Prototypes 객체를 사용하는 유일한 방법은 클래스가 아니다. Pillar 3: Types and Coercion JS의 값.. 2023. 4. 26.
[YDKJ] Get Started - Chapter 3 - 1 요약 Iteration 반복적인 데이터를 처리하기 위해 사용하는 패턴 iterator 자료구조를 가지고 있음. 값과, next(), done으로 이루어져있음 => done은 값이 마지막인지 확인하는 true/false 대표적으로 for...of가 있음. Iterables 이터레이터 소비 프로토콜은 이터러블에서 이터레이터 인스턴스를 만들어 소비함. es6에서 문자열, 배열, 맵, 셋등등을 이터러블로 정의함. 대부분의 경우 JS의 이터러블은 keys(), values(), entries()를 제공함. 즉, 이터레이터 인스턴스를 반환하면 이터러블(iterable) 이터레이터 결과값을 반환하면(value, done) 이터레이터(iterator) Closure 함수가 다른 스코프에서 실행될때에도 함수가 외부스코프.. 2023. 4. 26.
[YDKJ] Get Started - Chapter 2 - 2(完) 요약 How We Organize in JS JS생태계에서 널리 사용되는 코드 구성패턴은 클래스와 모듈 Classes 클래스는 데이터와 해당 데이터를 조작하는 동작을 정의함. 클래스를 사용하려면 new 키워드로 인스턴스화해야 함. 클래스를 사용하지 않더라도 코드를 구성할 수 있지만, 구성이 어렵고 읽기 및 이해가 어려워짐 Class Inheritance 상속받은 메서드와 재정의된 메서드가 동일한 이름으로 공존할 수 있는 사실은 다형성(Polymorphism)이라고 함. class Publication { constructor(title,author,pubDate) { this.title = title; this.author = author; this.pubDate = pubDate; } print() {.. 2023. 4. 23.
[YDKJ] Get Started - Chapter 2 - 1 요약 Each File is a Program 각각의 js파일은 개별적인 프로그램이며, 이 것들이 상호작용하여 하나의 프로그램처럼 보이는 것. 여러 독립된 js파일이 하나의 프로그램으로 동작하는 방법은 global scope뿐. 많은 프로젝트가 개별파일들을 하나의 파일로 결합하여 전달하는 빌드프로세스를 사용함. 이 경우는 단일 파일이 전체 프로그램이 맞음. Values JS에서 값은 기본값(원시값)과 객체 둘로 나뉨 `${NAME}` 백틱을 사용한 보간법 설명 null과 undefined 중 더 안전하고 확실한 방법은 undefined이며, 사용할 때는 둘 중에 하나로 통일하는 게 좋음 Symbol은 특수한 키를 만드는 데 사용함. => 일반적인 프로그램에선 쓸 일 거의 없음, 프레임워크나 라이브러리 같.. 2023. 4. 22.
[YDKJ] Get Started - Chapter 1 - 2(完) 요약 Jumpong the Gaps JS는 과거의 호환성을 중요시한다고 했다. ES2019를 2016 엔진에서 실행한다면 충돌날 가능성이 높다. => 이러한 갭을 줄이기 위해서 나온 게 BABLE임. BABLE은 ES2019코드를 2016 엔진에서도 돌아가는 문법으로 변환해줌. Filling the Gpas 최신 JS와 옛날엔진의 간극을 매우는 방법은 2가지, Transpilation과 polyfilling임 트랜스파일링은 => 바벨과 같은 도구 사용하기. polyfilling은 그냥 코드로 새로운 기능 구현해 주기. JS가 계속 발전하기 때문에 이 간극은 계속해서 존재할 것임. 두 기술을 항상 채택해야 함. What is Interpretation? JS는 다음과정을 통해 컴파일된다. 개발자에디터에서 .. 2023. 4. 21.
[YDKJ] Get Started - Chapter 1 - 1 요약 About This Book 이번 Get Started는 더 깊이 있는 JS학습을 위해 준비하는 과정 JS자체가 목표가 아니라 journey이다. => 계속해서 새로운 것을 배울 수 있다는 얘기인 듯..? What's with that name? Java와 Javascript의 이름이 비슷한 이유는 마케팅의 산물. JS가 나올 때 자바 프로그래머를 겨냥했기 때문이다 자바를 소유하고 있는 Oracle은 Javascript에 대한 상표도 소유하고 있음(효력은 없지만..) => 따라서 Javascript보다는 JS라고 말하는 것을 권장! Oracle이 소유하고 있는 상표와 거리를 두기 위해 공식적인 이름은 ECMAScript임 => 따라서 JS or ES20XX라 부르자. Language Specific.. 2023. 4. 20.
반응형