날짜: 2022년 9월 27일 화요일

키워드 및 질문

본문

<aside> 📌 요약: Class는 객체를 뽑는 기계다. Prototype은 부모 유전자다. String은 읽기 전용 배열로 for문으로 각각의 요소를 순회 가능하지만 변경할 수는 없다. 새로 할당해야 한다. 객체 프로퍼티에서 key값은 묵시적으로 문자타입으로 변환된다. .으로 접근할때는 정적으로 key값을 접근하고, 변수를 이용하여 동적으로 접근할 경우 []를 사용한다. this는 자신이 속한 객체를 가리키는 자기 참조 변수다. 자바스크립트에서는 문법적으로 Class를 써서(after ES6) 프로토타입을 조작하는 것이다. static은 클래스의 프로퍼티나 메서드이며, 인스턴스에는 보이지 않고 클래스명을 찍어서 사용한다. 객체를 만들지 않고 사용이 가능한것. 스태틱 영역에 따로 데이터 공간이 생긴다. 자바스크립트에서 private은 앞에 #을 붙인다. get과 set은 설정하면 함수를 변수처럼 사용할 수 있다. 그리고 안에 정제된 값이 들어오는지 검사하는 로직을 작성할 수 있다. 상속을 통해서 클래스의 계층적 구조화로 유지보수를 쉽게하고, 클래스 안에 요소들의 중복을 최소화 할 수 있다. 상속을 받으면 자식 constructor에서 super()로 부모에게 물려받은 요소를 초기화한다. var, let, const 모두 변수 호이스팅이 일어나지만, let과 const는 TDZ라는게 있어서 위에서 초기화 하지 않으면 사용할 수 없다. 함수 선언문은 호이스팅이 되고, 함수 표현식은 호이스팅이 되지 않는다. 모듈에서 export default를 통해서 받는쪽에서 이름을 마음대로 지정 가능하고 여러가지를 default로 보내고 받고자 한다면 중괄호에 담아서 보내고 받는쪽은 객체로 받는다. 클래스를 사용하는 이유는 불필요한 코드의 중복을 줄이고, 코드의 생산성을 높이며, 유지보수를 쉽게 할 수 있도록 한다.

</aside>