분류 전체보기 (96) 썸네일형 리스트형 모던 자바스크립트 Deep Dive 20장 strict mode 📗 내용 정리 strict mode란? 번역하자면 엄격 모드라는 말이다. 오타나 문법적 오류를 잡아낸다. ESLint와 같은 린트 도구를 사용해도 비슷하거나 더욱 강력한 효과를 얻을 수 있다. 책의 저자는 린트 도구의 사용을 선호한다고 한다. strict mode의 적용 전역의 선두 혹은 함수 몸체의 선두에 'use strict'; 를 추가한다. 'use strict'; function foo() { x = 10; // x is not defined. } function foo() { 'use strict'; x = 10; // x is not defined. } 단, 전역에 strict mode를 적용하는 것은 피하는 것이 좋다. 스크립트 단위로 적용되기 때문에 외부 라이브러리를 사용하는 경우에는 모드.. 모던 자바스크립트 Deep Dive 19장 프로토타입 🔑 키워드 정리 클래스 : 프로토타입 기반 패턴의 문법적 설탕(It makes the language "sweeter" for human use: things can be expressed more clearly, more concisely, or in an alternative style that some may prefer. 사람이 언어를 더 이해하기 쉽게 만드는 것.) 프로토타입 : 어떤 객체의 상위 객체의 역할을 하는 객체. 다른 객체에 공유 프로퍼티와 메서드를 제공한다. 프로토타입 체인 : 객체지향 프로그래밍의 상속과 프로퍼티 검색을 구현하는 매커니즘. 객체의 프로퍼티가 없다면 [[Prototype]] 내부 슬롯을 따라서 상위 객체인 프로토타입의 프로퍼티를 순차적으로 검색한다. (*스코프 체인 .. 모던 자바스크립트 Deep Dive 18장 함수와 일급 객체 🔑 키워드 정리 일급 객체란 다음 조건을 모두 만족하는 것이다. 무명의 리터럴로 생성할 수 있다. 변수나 자료구조에 저장할 수 있다. 함수의 매개변수에 전달할 수 있다. 함수의 반환값으로 사용할 수 있다. 📗 내용 정리 자바스크립트의 함수는 일급 객체다. 함수가 일급 객체이면, 함수를 객체와 동일하게 사용할 수 있다는 뜻이다. 일반 객체와의 차이점은 함수 객체는 호출할 수 있다는 점이다. 또한 함수는 고유의 프로퍼티가 있다. 함수 객체의 프로퍼티 함수 고유의 프로퍼티에는 arguments, caller(비표준), length, name, prototype 가 있다. arguments 프로퍼티 arguments 객체는 가변 인자 함수를 구현할 때 유용하다. 유사 배열 객체이면서 이터러블이다. 함수의 매개변.. 모던 자바스크립트 Deep Dive 17장 생성자 함수에 의한 객체 생성 🔑 키워드 정리 인스턴스 : new 연산자와 함께 호출되어 생성자 함수에 의해 생성된 객체 바인딩 : 식별자와 값을 연결하는 과정. (예) 변수 선언 시, 변수 이름과 메모리 공간의 주소를 바인딩하는 것 📗 내용 정리 new 연산자와 함께 생성자 함수를 통해서 객체를 생성하는 방법은 사실 객체 리터럴 방법보다 불편하다. 다만 객체 리터럴 방식은 동적 생성이 어려운 반면, 생성자 함수를 통하면 비교적 간편하다. this가 가리키는 값 NO 함수 호출 방식 this가 가리키는 값(this 바인딩) 1 일반 함수로서 호출 전역 객체 2 메서드로서 호출 메서드를 호출한 객체(마침표 앞의 객체) 3 생성자 함수로서 호출 생성자 함수가 (미래에) 생성할 인스턴스 funcction foo(){ console.log(.. 모던 자바스크립트 Deep Dive 16장 프로퍼티 어트리뷰트 🔑 키워드 정리 프로퍼티 어트리뷰트 : 프로퍼티의 상태를 나타내는 값을 말한다. 자바스크립트 엔진이 프로퍼티를 생성할 때 자동으로 정의한다. 프로토타입 : 어떤 객체의 상위 객체의 역할을 하는 객체다. 19장에서 자세히 다룬다. 📗 내용 정리 내부 슬롯, 내부 메서드 자바스크립트 엔진의 내부 로직으로 ECMAScript 사양에서 이중 대괄호([[ ... ]])로 감싼 이름들이다. __proto__를 통해 간접적으로 접근할 수 있다. Object.getOwnPropertyDescriptor 메서드는 프로퍼티 디스크립터 객체를 반환한다. 객체 정보에는 프로퍼티 값(value), 값의 갱신 가능 여부(writable), 열거 가능 여부(enumerable), 재정의 가능 여부(configurable)가 있다... 모던 자바스크립트 Deep Dive 15장 let, const 키워드와 블록 레벨 스코프 🔑 키워드 정리 일시적 사각지대(Temporary Dead Zone; TDZ) : let 키워드로 선언한 변수는 스코프의 시작 지점부터 초기화 단계 시작 지점(변수 선언)까지 변수를 참조할 수 없다. 이 구간을 가리킨다. x = "global"; // function scope: (function() { x; // not "global" var/let/… x; }()); // block scope (not for `var`s): { x; // not "global" let/const/… x; } 🗒 내용 정리 var 키워드 var 키워드로 선언한 변수는 중복 선언이 가능하다. 함수 외부에서 선언한 변수는 코드 블록 내에서 선언해도 모두 전역 변수가 된다. 변수 호이스팅은 var 키워드 변수를 스코프의 선.. 이전 1 ··· 3 4 5 6 7 8 9 ··· 16 다음