[10/23/2022] Today, I Learned

유영준·2022년 10월 23일
post-thumbnail

자바스크립트의 기본 개념동작 원리를 정확히 이해하는 것이 중요!


개인적인 공부를 하면서 중요한 내용을 정리한 형식이기 때문에 오류가 있을 수 있습니다.
피드백 주시면 정말 감사하겠습니다.


오늘 배운 내용

  • 전역 변수의 문제점
  • let, const 키워드와 블록 레벨 스코프
  • 프로퍼티 어트리뷰트
  • 생성자 함수에 의한 객체 생성
  • 함수와 일급 객체
  • 프로토타입

알고 있던 내용

  • 지역 변수의 생명 주기는 함수의 생명 주기와 일치한다
  • 프로토타입은 하위(자식) 객체에게 자신의 프로퍼티와 매서드를 상속한다
  • 생성자 함수란 new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수를 말한다.
  • 생성자 함수에 의한 객체 생성 방식은 생성자 함수를 사용하여 프로퍼티 구조가 동일한 객체 여러 개를 간편하게 생성할 수 있다
  • 다양한 속성 중에서 프로그램에 필요한 속성만 간추려 내어 표현하는 것을 추상화라 한다
  • 객체의 모든 프로퍼티를 순회하며 열거하려면 for...in 문을 사용한다

몰랐던 내용

  • 스코프의 시작 지점부터 초기화 시작 지점까지 변수를 참조할 수 없는 구간을 일시적 사각지대라고 부른다
  • const 키워드로 선언된 변수에 객체를 할당한 경우 값을 변경할 수 있다
  • 데이터 프로퍼티 : 값을 저장하기 위한 프로퍼티. 일반적으로 사용하는 프로퍼티는 데이터 프로퍼티이다
  • 접근자 프로퍼티 : 프로퍼티를 읽거나 쓸 때 호출하는 함수를 값 대신에 지정할 수 있는 프로퍼티이다 이 함수는 값을 획득(get)하고 설정(set)하는 역할을 담당한다
  • 확장이 가능한 객체인지 여부는 Object.isExtensible 메서드로 확인할 수 있다
  • 객체 밀봉이란 프로퍼티 추가 및 삭제와 프로퍼티 어트리뷰트 재정의 금지를 의미한다 (읽기와 쓰기만 가능)
  • 객체 동결이란 프로퍼티 추가 및 삭제와 프로퍼티 어트리뷰트 재정의 금지, 프로퍼티 값 생신 금지를 의미한다 (읽기만 가능)
  • non-constructor인 함수 객체를 생성자 함수로서 호출하면 에러가 발생한다
  • new 연산자와 함께 생성자 함수로서 호출되면 함수 내부의 new.target은 함수 자신을 가리킨다 new 연산자 없이 일반 함수로서 호출된 함수 내부의 new.targe은 undefined다
  • arguments 객체는 함수 호출 시 전달된 인수들의 정보를 담고 있는 순회 가능한 유사배열 객체이며, 함수 내부에서 지역 변수처럼 사용된다
  • 모든 객체는 __proto__ 접근자 프로퍼티를 통해 자신의 프로포타입, 즉 [[Prototype]] 내부 슬롯에 간접적으로 접근할 수 있다
  • 프로포타입에 접근하기 위해 접근자 프로퍼티를 사용하는 이유는 상호 참조에 의해 프로토타입 체인이 생성되는 것을 방지하기 위해서다
  • 프로토타입 체인은 자바스크립트가 객체지향 프로그래밍의 상속을 구현하는 메커니즘이다
  • for...in 문은 객체의 프로토타입 체인 상에 존재하는 모든 프로토타입의 프로퍼티 중에서 프로퍼티 어트리뷰트 [[Enumerable]]의 값이 true인 프로퍼티를 순회하며 열거한다
  • Object.keys 메서드는 객체 자신의 열거 가능한 프로퍼티 키를 배열로 반환한다
profile
프론트엔드 개발자 준비 중

0개의 댓글