ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Notes from reading 🔖 You Don't Know JS Yet - 5
    JavaScript 2025. 6. 11. 22:35

    ### 부록 A

    • JS는 값 할당 과정에서 값/참조 어떤 것을 넣게 할지 선택할 수 없다.
    • 값의 타입에서 값/참조 할당이 정해진다
    • 원시타입 -> 값 복사 할당
    • 객체값 -> 참조 할당
    • JS의 이런 작동방식은 변경 불가능하다.

     

    • 익명 함수를 변수에 선언했을 때 JS는 해당 익명 함수의 이름을 추론한다.
    • 따라서 익명 함수도 이름이 있을 수 있다
    • 다만, 추론으로 이름을 가져도 익명함수는 익명함수이고 익명함수로 재귀 함수를 구현하면 문제가 발생할 여지가 있다.
    • 다만, 함수에는 역할이 있고 해당 역할을 표현하는 이름을 지어주는 것이 더 효과적이다.
    • 화살표 함수는 사실 특수한 목적을 지닌 함수 (this 키워드가 참조하는 렉시컬 환경을 핸들링하기 위함)
    • 클래스/객체 리터럴을 정의할 때 생성된 함수를 매서드라고 부르는데, JS에서 매서드와 함수는 차이가 없다.
    • 강제 조건부 비교?
    • 비교와 강제 변환에서 JS는 복잡한데, "123" 같은 string은 true 처럼 사용될 수 있지만, true와 직업 비교하면 false이다.
    • Boolean(x) 와 같은 방식을 사용하는 쪽이 더 안전하게 비교를 할 수 있는 방법이다.
    • 클래스 등장 이전까지 프로토타입 클래스가 객체를 연결하는 역할을 했다.
    • Object.create()
    • 모든 함수는 기본적으로 prototype 이라는 프로퍼티를 통해서 빈 객체를 참조한다.
    • 함수의 프로토타입과 prototype 프로퍼티는 다르다.
    • 프로퍼티 prototype은 new를 사용해 함수를 호출해 객체를 만들었을 때, 새로운 객체의 프로토타입을 설정할 수 있도록 돕는다.
    • 클래스와 프로토타입 클래스 모두 깊은 곳에서 프로토타입 연결이 일어나지만, class 매커니즘을 쓰는게 더 간단하다.

     

     

     

Designed by Tistory.