TIL #210214
📚 TIL
자바스크립트 코딩의 기술
🍘 자바스크립트 코딩의 기술 스터디 6회
- 주제 : 클래스로 인터페이스를 간결하게 유지하라
- 시간 : 저녁 9시 10분
문제와 답
Q1 : 클래스를 선언하고 인스턴스를 생성해 보세요
A1 : class 키워드와 new 키워드 사용
class Animal {
constructor(name) {
this.name = name;
}
}
const monkey = new Animal('monkey');
Q2 : ES5 스펙만으로 Class를 구현할수 있는가? 방법은?
A2 : function에 속성, 프로토타입에 메서드를 추가한다
Q3 : Class에 정의 된 method들은 어디에 연결이 돼있을까요?
A3 : 프로토타입에 연결되어 있다
Q4 : bind()를 사용해야되는 케이스를 알려주세요
A4 : this를 다루면서 오류가 발생할 때 문맥을 명시적을 정하기 위해 사용
Q5 : 게터와 세터로 속성설정, 변경을 하면 좋은 점과 나쁜점에 대해서 설명해주세요
A5 : 복잡도를 숨길 수 있다
클래스가 비대해진다, 메서드 호출인지 속성 설정인지 알기 힘들어진다, 디버깅 어렵고 테스트 어렵다
Q6 : 자바스크립트는 비공개 속성을 지원하지 않습니다. 이를 해결하기 위한 방법을 설명해주세요
A6 : 게터와 세터를 이용한다
Q7 : Generator를 사용함으로 가지는 장점과 단점은 무엇일까요?
A7 : 다른 개발자들이 클래스의 세부 구현 내용을 알 필요가 없다
복잡도를 숨기는 것이 디버깅을 더 어렵게 만든다
Q8 : 제너레이터로 FamilyTree에 이터러블 속성을 생성하여 가족들의 이름을 모두 출력해주세요.
A8 : class 속성에 제너레이터 추가
* [Symbol.iterator]() {
let node = this.family;
while (node) {
yield node.name;
node = node.child;
}
}
...
console.log([...family]);
스터디 전
기분 | 이유 | 기대하는 것 |
10 | 오랜만에 스터디를 해서 | 문맥을 확실히 이해한다 |
스터디 후
기분 | 얻은 것 | 할 것 |
10 | 제너레이터를 확실히 이해했다 | 보내주신 영상 시청하기 |
필기노트
참고 링크 :
Private class fields
developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Classes/Private_class_fields
Private class fields - JavaScript | MDN
class 의 속성(property)들은 기본적으로 public 하며 class 외부에서 읽히고 수정될 수 있다. 하지만, ES2019 에서는 해쉬 # prefix 를 추가해 private class 필드를 선언할 수 있게 되었다.class ClassWithPrivateField {
developer.mozilla.org
지연 평가
armadillo-dev.github.io/javascript/whit-is-lazy-evaluation/
[Javascript] 지연 평가(Lazy evaluation) 를 이용한 성능 개선
컴퓨터 프로그래밍에서 느긋한 계산법(Lazy evaluation)은 계산의 결과 값이 필요할 때까지 계산을 늦추는 기법이다. 위키피디아에서 지연 평가를 설명하는 문장이다. 지연 평가는 필요 할 때까지
armadillo-dev.github.io
Symbol.iterator
developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator
Symbol.iterator - JavaScript | MDN
잘 알려진 Symbol.iterator 심볼은 객체에 대응하는 기본 이터레이터를 지정합니다. for...of와 같이 사용됩니다. The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the inter
developer.mozilla.org
😁 오늘 한 일
📕 공부하기
- 오랜만에 스터디를 했다!
- 원래 어제 다 읽으려고 했는데 다 못읽어서 오늘 이어서 읽고 스터디에 참여했어요 ㅎㅎ
👩🏫 스터디하기
- 오늘은 문맥과 제너레이터, 프로토타입 어려운 부분이 많이 나왔어요
- 도움되는 영상과 자료 많이 보내주시니까 공부해야지!!