전체 글

개인 공부/자바스크립트 공부

[자바스크립트] 모던 자바스크립트 DeepDive 공부 #18

Chapter18 - 함수와 일급 객체 18.1 일급 객체 무명의 리터럴로 생성 가능. 즉, 런타임에 생성 가능 변수나 자료구조에 저장 가능 함수의 매개변수에 전달 가능 함수의 반환값으로 사용 가능 // 1. 함수는 무명의 리터털로 생성할 수 있음 // 2. 함수는 변수에 저장할 수 있음 // 런타임에 함수 리터럴이 평가되어 함수 객체가 생성되고 변수에 할당됨 const increase = function (num) { return ++num; }; const decrease = function (num) { return --num; }; // 2. 함수는 객체에 저장 가능 const predicates = { increase, decrease }; // 3. 함수의 매개 변수에 전달 가능 // 4. 험..

개인 공부/자바스크립트 공부

[자바스크립트] 모던 자바스크립트 DeepDive 공부 #17

Chapter17 - 생성자 함수에 의한 객체 생성 17.1 Object 생성자 함수 new 연산자와 함꼐 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환 // 빈 객체의 생성 const person = new Object(); // 프로퍼티 추가 person.name = 'Lee'; person.sayHello = function () { console.log('Hi! My name is ' + this.name); }; console.log(person); // {name: "Lee", sayHello: f} person.sayHello(); // Hi! My name is Lee 자바스크립트는 Object 생성자 함수 외에도 String, Number, Bo..

개인 공부/자바스크립트 공부

[자바스크립트] 모던 자바스크립트 DeepDive 공부 #16

Chpater16 - 프로퍼티 어트리뷰트 16.1 내부 슬롯과 내부 메서드 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 사용하는 의사 프로퍼티와 의사 메서드 자바스크립트 엔진의 내부 로직이므로 직접적으로 접근이나 호출 방법을 제공하지 않음 16.2 프로퍼티 어트리뷰트와 프로퍼티 디스크립터 객체 프로퍼티 생성 시 상태를 나타내는 프로퍼티 어트리뷰트를 기본값으로 자동 정의 직접 접근은 불가능하지만 Object.getOwnPropertyDescriptor 메서드를 이용해 간접적으로 확인가능 const person = { name: 'Lee' }; // 프로퍼티 동적 생성 person.age = 20; // 모든 프로퍼티의 프로퍼티 어트리뷰트 정보를 제공하는 프로퍼티 디스크립터 객체 반환 c..

개인 공부/자바스크립트 공부

[자바스크립트] 모던 자바스크립트 DeepDive 공부 #15

Chapter15 - let, const 키워드와 블록 레벨 스코프 15.1 var 키워드로 선언한 변수의 문제점 ES5까지 변수 선언의 유일한 방법은 var 키워드 이용 15.1 변수 중복 선언 허용 var x = 1; var y = 1; // var 키워드는 중복 선언 허용 // 초기화문이 있는 변수 선언문은 var 키워드가 없는 것처럼 동작 var x = 100; var y; console.log(x); // 100 console.log(y); // 1 15.1.2 함수 레벨 스코프 오직 코드 블록만 지역 스코프로 인정 특히 for문에서 중복 선언 조심 var i = 10; for (var i = 0; i < 5; i++) { console.log(i) // 0 1 2 3 4 } console.lo..

개인 공부/자바스크립트 공부

[자바스크립트] 모던 자바스크립트 DeepDive 공부 #14

Chapter14 - 전역 변수의 문제점 14.1 변수의 생명 주기 14.1.1 지역변수의 생명 주기 지역 변수의 생명 주기는 함수의 생명 주기와 일치 var x = "global"; function foo() { console.log(x); // undefined var x = "local"; } foo(); console.log(x); // global 호이스팅은 스코프 단위로 동작 14.1.2 전역 변수의 생명 주기 전역 코드에는 반환문을 사용할 수 없으므로 마지막 문이 실행되어 더 이상 실행할 문이 없을 때 종료 var 키워드로 선언한 전역 변수의 생명 주기는 전역 객체의 생명 주기와 일치 14.2 전역 변수의 문제점 암묵적 결합 긴 생명 주기 메모리 리소스 오래 소비 스코프 체인 상에서 종점에 ..

개인 공부/자바스크립트 공부

[자바스크립트] 모던 자바스크립트 DeepDive 공부 #13

Chapter13 - 스코프 13.1 스코프란? 모든 식별자는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효범위 결정 즉, 식별자가 유효한 범위 식별자 결정 시 사용하는 규칙으로 할 수 있음 var x = &#39;global&#39;; function foo() { // foo 함수 내부에서만 참조 가능 var x = &#39;local&#39;; console.log(x); // local } foo(); console.log(x); // global var 키워드로 선언한 변수는 중복 선언 허용 -> 재할당으로 인한 부작용 발생 가능성이 있음 let, const 키워드 변수는 중복 선언 허용하지 않음 13.2 스코프의 종류 구분 설명 스코프 변수 전역 코드의 가장 바깥 ..

내캉
주간비행