본문 바로가기

JavaScript14

[JavaScript] Prototype(함수 객체, 리터럴 표기법, 프로토타입 객체) 모던 자바스크립트 Deep Dive 19장을 읽으며 정리한다. (~19.4) 내용이 많다. 그리고 자바스크립트의 중요한 내용을 담고 있어 좀 세심하게 읽어보고 있다. 현재 책의 30%을 읽었다. 나머지 70%을 위해서 빠르게 정리해볼 계획이다. 특히 object & event loop & 비동기를 세심하게 살펴볼 예정이다! 자바스크립트는 프로토타입 기반 OOP를 지원한다. C++나 JAVA같은 class 기반 객체지향 프로그래밍과는 다른 부분이 있다. 예를 들면 public, private, protected가 없다. 그래도 자바스크립트는 객체 지향 프로그래밍 언어다! JS를 이루고 있는 거의 모든 게 객체다. 앞에서 봤듯이, primitive type를 제외한 나머지 값들은 다 객체다. OOP가 대체 .. 2022. 2. 16.
[JavaScript] 생성자 함수에 의한 객체 생성 생성자 함수에 의한 객체 생성 모던 자바스크립트 Deep Dive 17장을 들으며 정리한다. 생성자 함수(constructor)를 이용한 객체 생성 const fruit = new Object(); new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성해서 반환한다. 그 이후 property나 method를 추가해서 객체를 완성할 수 있다. Object 생성자 함수 외에도 String, Number, Boolean, Function, Array, Date 등의 Built-in 생성자 함수를 제공한다. String 생성자 함수를 사용하면 String 객체가 형성된다. 책에서는 Object 생성자 함수를 사용해서 객체를 만드는 건 특별한 이유가 없을 때는 유용하지 않다고 지적한다. 왜일까?.. 2022. 2. 12.
[JavaScript] Property Attribute (프로퍼티 어트리뷰트) 모던 자바스크립트 Deep Dive 16장을 읽으며 정리한다. property attribute value (값) writable (갱신 가능 여부) enumerable (열거 가능 여부) configurable (재정의 가능 여부) 자바스크립트 엔진은 property를 생성할 때 property의 상태를 나타내는 것들을 property attribute를 기본값으로 자동 정의. 상태란 위 네 가지를 뜻함. property attribute는 meta-property인 내부 슬롯이다. 직접 접근 불가능, 간접 접근 가능 const fruit = { name : 'pear' }; fruit.age = 10; console.log(Object.getOwnPropertyDescriptors(fruit)); /.. 2022. 2. 8.
[JavaScript] var 대신 let/const를 사용하자(ES6) 예전에 노마드코더 강의에서, var 쓰지말라고 했다. 쉽게 얘기하자면 var은 목적이 불분명해서 훨씬 명확하게 읽을 수 있는 let/const 로 분류하자는 말이었다. → let는 재할당이 필요한 경우 → const는 재할당이 필요없는 경우 나는 명백히 var에 단점이 있다고 생각한다. 모던 자바스크립트 Deep Dive 15장을 읽으며 몰랐던 개념에 대해 정리하겠다. 일시적 사각지대(Temporal Dead Zone, TDZ) 스코피의 시작 지점부터 초기화 시작 지점까지 변수를 참조할 수 없는 구간이다. 나는 var가 맨 끝에 갖다놔도 hoisting이 되므로 let도 동일하게 동작할 것이라 생각했다. 그러나! var은 선언 단계와 초기화 단계가 한번에 진행된다. 하지만 let로 선언하면 두 단계가 분.. 2022. 2. 7.