본문 바로가기

YDKJ18

[YDKJ] Objects & Classes - Object Foundations 요약 Chapter 1: Object Foundations JS의 모든 것은 객체이다. => 이 것은 가장 만연하고 잘못된 사실 중 하나임!!!! 이 장에서는 객체로 시작하여, 프로토타입, this, 클래스를 위주로 알아볼 것. Objects As Containers 여러 값을 단일 컨테이너에 모으는 일반적인 방법 중 하나는 객체를 사용하는 것. ex myObj = { } Defining Properties 객체 리터럴 중괄호 안에는 name:value쌍으로 정의함 myObj = { favoriteNumber: 42, isDeveloper: true, firstName: "Kyle" }; 위처럼 리터럴 값을 할당할 수도 있고, 표현식을 할당할 수도 있음. function twenty() { return .. 2023. 9. 3.
[YDKJ] Scope & Closures - Appendix A: Exploring Further 요약 이 부분은 본문에서 다룬 주제들에 대한 다양한 세부사항과 변칙적인 접근 방식을 탐구할 것. 이 부분은 다양한 주제와 장황한 내용을 포함하므로 여유롭게 읽을 것. Implied Scopes 때때로 스코프는 명확하지 않은 위치에서 생성됨. => 이러한 스코프가 프로그램 작동에 큰 영향을 미치진 않지만, 그들을 알고 있는 것은 유용하다. Parameter Scope // outer/global scope: RED(1) function getStudentName(studentID) { // function scope: BLUE(2) // .. } 이 프로그램에서 스코프는 2가지가 됨. // outer/global scope: RED(1) function getStudentName(/*BLUE(2)*/ st.. 2023. 6. 13.
[YDKJ] Scope & Closures - The Module Pattern 요약 이 챕터에서는 코드 구성 패턴 중 하나인 모듈을 탐구할 것임. Encapsulation and Least Exposure (POLE)pole:최소노출원칙 캡슐화의 목표는 공통된 목적을 제공하는 데이터와 함수를 함께 묶어 배치하는 것. 비슷한 프로그램 조각을 함께 그룹화하는 것. 세부정보의 접근을 제한하는 것. 이러한 과정 속에서 코드의 조직성이 향상됨.=>유지보수 굿, 과도한 노출 방지. 이것이 js프로그램을 모듈로 구성하는 것에 대한 이점 중 일부임. What Is a Module? 모듈은 관련된 데이터와 함수의 모음. 또한 상태를 가지고 있고, 시간이 지남에 따라 정보를 유지하고 업데이트함 Namespaces (Stateless Grouping) // namespace, not module va.. 2023. 6. 5.
[YDKJ] Scope & Closures - Using Closures 요약 이번 장에서는 클로저에 대해 다룰 것임. 이전 챕터에서 말했던대로, 클로저는 POLE원칙에 기반한 것임. POLE => 변수접근을 최대한 어렵게!!(블록스코핑) => 코드이해 쉬움, 유지보수 쉬움, 스코프 충돌 피하기 쉬움 See the Closure 클로저는 함수인 경우에만 작동 내부 함수가 외부 범위의 변수에 대한 참조를 만드는 것이 클로저 Pointed Closure 화살표 함수도 스코프 버블을 생성함 => 화살표 함수도 클로저에 참여!! Adding Up Closures 클로저에 인용되는 전형적인 예시 function adder(num1) { return function addTo(num2){ return num1 + num2; }; } var add10To = adder(10); var a.. 2023. 5. 29.
[YDKJ] Scope & Closures - Limiting Scope Exposure 요약 이번 장에서는, 변수를 조직하기 위해 왜 다양한 스코프를 이용해야 되는지 알아본다. Least Exposure POLE(Principle of Least Privilege) => 최소권한 원칙 시스템의 구성요소가 최소한의 권한, 최소한의 접근권한, 최소한의 노출로 동작되도록 설계되어야 함을 나타냄. 그럴수록 하나의 구성요소의 결함 또는 실패가 전체 시스템에 미치는 영향이 적어짐 => 그래서 블록을 사용하여 스코프를 써야 한다!! 왜 전역에 모든 변수를 배치하면 안 좋을까? 1. 이름충돌 프로그램의 다른 부분에서 이름이 충돌남! 2. 예상치 못한 작동 private한 함수를 사용하여 개인정보가 노출될 수 있음 3. 의도하지 않은 의존성 어떤 코드가 숫자배열에 의존하고 있고, 나중에 이 숫자배열을 손봐.. 2023. 5. 27.
[YDKJ] Scope & Closures - The (Not So) Secret Lifecycle of Variables 요약 지금까지는 전역 스코프에서 하위 스코프로 이어지는 중첩된 스코프에 대해 주로 알아봤음. => 스코프체인 그러나 변수가 어디 스코프에서 왔는지 아는 것은 아주 작은 부분일 뿐. 이번에는 스코프 안에서 문 이후에 변수 선언이 나온다면 어떻게 참조할까? 같은 스코프에 변수가 중복 선언된다면?? When Can I Use a Variable? greeting(); // Hello! function greeting() { console.log("Hello!"); } 이 코드가 작동하는 이유는 뭘까? 변수 선언을 스코프의 시작 부분부터 볼 수 있는 게 호이스팅임. 함수선언은 호이스팅이 될 때, 값 참조까지 자동으로 초기화되기 때문에 위 코드가 작동하는 것. let과 const도 호이스팅이 일어나지만, var과.. 2023. 5. 22.
반응형