JavaScript(16)
-
[JS스터디] 24. 클로저
렉시컬 스코프 : 함수를 어디에 정의했는지에 따라 상위 스코프가 결정되는 것 : 함수가 정의된 환경(위치)에 따라 렉시컬 환경의 ‘외부 렉시컬 환경에 대한 참조’에 저장할 참조값, 즉 상위 스코프에 대한 참조가 결정되는 것 23장 실행 컨텍스트 복습: 렉시컬 환경: 스코프의 실체 스코프 체인: 렉시컬 환경이 자신의 ‘외부 렉시컬 환경에 대한 참조’를 통해 상위 렉시컬 환경과 연결되는 것 주의할 점 - 어디서 정의했는지에 따라 (O) 어디서 호출했는지에 따라 (X) 함수 객체의 내부 슬롯 [[Environment]] 렉시컬 스코프가 가능하려면 함수 자신이 정의된 환경을 기억해야 한다. 이를 위해 함수는 자신의 내부 슬롯 [[Environment]]에 자신이 정의된 환경 (= 상위 스코프의 참조)를 저장한다..
2023.06.05 -
[JS스터디] 22. this
this 키워드 this : 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수 객체 리터럴을 식별자에 할당하여 객체를 생성하는 경우, 할당되기 직전에 객체 리터럴이 평가되어 객체가 생성되므로, 객체 리터럴 안에서 자신이 속한 객체의 프로퍼티나 메소드를 참조하기 위해 식별자를 재귀적으로 참조할 수 있다. 하지만 생성자 함수로 객체를 생성할 경우, 생성자 함수 내에서 자신이 생성할 인스턴스 객체를 가리킬 방법은 없다. 아직 객체를 생성하기 이전이기 때문에 참조할 식별자가 없기 때문이다. 이 때 사용하는 것이 this다. this가 가리키는 값, 즉 this 바인딩은 함수 호출 방식에 의해 동적으로 결정된다. (바인딩: 식별자와 확보된 메모리 공간의 주소를 연결하는 것) 객체 리터럴의 ..
2023.05.14 -
[JS스터디] 21. 빌트인 객체
1. 자바스크립트 객체의 분류 표준 빌트인 객체 ECMAScript 사양에 정의된 객체 전역 객체의 프로퍼티로 제공 → 어디서든 참조 가능 호스트 객체 브라우저 환경 또는 Node.js 환경에서 제공하는 객체 사용자 정의 객체 2. 표준 빌트인 객체 Object, String, Number, Boolean, Symbol, Date, Math, RegExp, Array, Promise, Proxy, JSON, Error 등 40여개 모두 인스턴스를 생성하는 생성자 함수 객체 (Math, Reflect, JSON 제외) (생성자 함수인) 표준 빌트인 객체가 생성한 인스턴스의 프로토타입 = 표준 빌트인 객체.prototype const numbObj = new Number(1.5); // Number.prot..
2023.05.14 -
[JS스터디] 20. strict mode
strict mode: 자바스크립트 문법을 좀 더 엄격히 적용하여 명시적인 에러를 발생시킨다. 적용할 전역 또는 함수 몸체의 선두에 'use strict;' 를 추가하면 해당 전역 또는 함수 몸체에 strict mode가 적용된다. 단, 전역에 적용하여 스크립트 단위로 strict mode를 적용하면 그 스크립트 단위에서만 적용된다. 이 경우 strict mode 스크립트와 non-strict mode 스크립트가 혼용되어 오류를 발생시킬 수 있다. 특히 개발자가 스크립트마다 strict mode를 적용한다 하더라도 외부 라이브러리를 사용하는 경우 non-strict mode인 경우도 있기 때문에 전역에서 strict mode를 적용하는 것은 바람직하지 않다. 함수 단위로 strict mod..
2023.05.14 -
[JS스터디] 19. 프로토타입
1. 객체지향 프로그래밍 : 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임 실세계의 실체가 수많은 속성 중 특정 속성을 통해 구별될 수 있는 것처럼, 프로그램의 객체도 이러한 속성을 갖는다. 여기서 여러 속성 중 필요한 속성만 간추려내는 것을 추상화라 한다. 객체지향 프로그래밍에서 객체는 상태 데이터와 동작을 하나의 논리적인 단위로 묶어 놓은 복합적 자료구조이다. 객체의 상태 데이터를 프로퍼티, 동작을 메소드라 한다. 2. 상속과 프로토타입 상속 : 어떤 객체의 프로퍼티 또는 메소드를 다른 객체가 상속받아 그대로 사용할 수 있는 것 → 불필요한 중복 제거가 가능하다 (개발 비용 낮춤) 객체를 생성하는 방법 객체 리터럴에 의한 객체 생성 생성자 함수에 의한 객체 생성 // 생성자 함수 funct..
2023.05.06 -
[JS스터디] 18. 함수와 일급객체
일급 객체 다음 네 조건을 모두 만족하는 객체는 일급객체이다. 1. 무명의 리터럴로 생성할 수 있다. = 런타임에 생성이 가능하다. 2. 변수나 자료구조(객체, 배열 등)에 저장할 수 있다. 3. 함수의 매개변수에 전달할 수 있다. 4. 함수의 반환 값으로 사용할 수 있다. 자바스크립트의 함수는 위의 조건을 모두 만족하므로 일급 객체이다. → 함수를 객체와 동일하게 사용할 수 있다. → 함수는 객체처럼 값이므로, 값을 사용할 수 있는 곳이라면 어디서든 함수를 리터럴로 정의할 수 있고, 런타임에 함수 객체로 평가된다. function increase = function (num) { return ++num; }; const auxs = { increase, decrease }; // 함수를 객체에 저장 가..
2023.05.06