내부 슬롯 : 의사 프로퍼티(pseudo property)내부 메서드 : 의사 메서드(pseudo method)ECMAScript 사양에 등장하는 이중 대괄로\[\[...]]로 감싼 이름들이 내부 슬롯과 내부 메서드다.내부 슬롯과 내부 메서드는 js 엔진 내부 로직으로
new 연산자와 함께 Object 생성자 함수를 호출함으로서 생성. 이렇게 만들어진 객체를 인스턴스라 함Object외에도 String, Number, Boolean, Function, Array, Date, RegExp, Promise 등의 빌트인 생성자 함수를 제공특
무명의 리터럴로 생성할 수 있다. 즉 런타임에 생성 가능변수나 자료구조(객체, 배열 등)에 저장할 수 있다.함수의 매개변수에 전달할 수 있다.함수의 반환값으로 사용할 수 있다.js의 함수는 이를 모두 만족하므로 일급 객체다.1\. 함수는 호출가능, 일반 객체는 불가능2
자바 스크립트는 객체 기반의 프로그래밍 언어이며 원시 타입의 값을 제외한 나머지 값들은 모두 객체이다.객체 : 속성을 통해 여러 개의 값을 하나의 단위로 구성한 복합적인 자료구조객체지향 프로그래밍 : 전통적인 명령형 프로그래밍의 절차지향적 관점에서 벗어나 객체의 집합으
ES5 부터 strict mode 도입자바스크립트 엔진 최적화 작업에 문제 일으킬 코드에 명시적 에러 발생 (ESLint 같은 린트 도구도 유사 효과 가능)전역의 선두 또는 함수 몸체의 선두에 'use strict' 사용 시 strict 모드 적용된다.외부 서드파티 라
표준 빌트인 객체 : ECMAScript 사양에 정의된 객체로 애플리케이션 전역 공통 기능 제공. 별도의 선언 없이 전역 변수처럼 언제나 참조 가능호스트 객체 : ECAMSCript에는 없지만 자바스크립트 실행 환경(브라우저 or Node.js) 환경에서 추가로 제공되
자신이 속한 객체를 가리키는 식별자를 참조해야 자신이 속한 객체의 프로퍼티 참조 가능this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수. this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드 참조 가능this
execution context(실행 컨텍스트)는 JS 동작 원리를 담고 있는 핵심 개념이다.ECMAScript 사양은 소스코드를 4가지 타입으로 구분. 이들은 실행 컨텍스트 생성1\. global code : 전역 존재 소스코드2\. function code : 함수
JS 고유 개념이 아닌, 함수를 일급 객체로 취급하는 함수형 프로그래밍 언어(예: 하스켈, 리스프, 얼랭, 스칼라 등)에서 사용되는 중요한 특성이다.클로저 정의 : 클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합렉시컬 스코프 : JS엔진은 함수를 얻이서 호출했는
자바스크립트는 프로토타입 기반 객체지향 언어다.ES5에서는 클래스 없이도 다음과 같이 생성자 함수와 프로토 타입을 통해 객체지향 언어의 상속을 구현할 수 있다.단, 클래스와 생성자 함수는 모두 프로토타입 기반의 인스턴스를 생성하지만 정확히 동일하게 동작하지 않는다.다음
ES6 이전까지 JS의 함수는 별다른 구분 없이 사용했음.JS 함수는 일반적인 함수로 호출new 연산자와 함께 호출하여 인스턴스 생성할 수 있는 생성자 함수로서 호출객체 바인딩되어 메서드로서 호출객체 바인딩되어 메서드로서 호출용도가 많아 실수 유발 및 성능 면에서도 손
ES6에서 도입된 이터레이션 프로토콜은 순회 가능한 데이터 컬렉션(자료구조)을 만들기 위해 ECMAScript 사양에 정의하여 미리 약속한 규칙이다.ES6 이전의 순회 가능한 데이터 컬렉션, 즉 배열, 문자열, 유사 배열 객체, DOM 컬렉션 등은 통일된 규약없이 각자
Node.js의 등장으로 조금 더 쉽게 app 개발에 사용할 수 있게 되었다.자바스크립트는 브라우저에서 HTML, CSS와 함께 실행된다.브라우저의 렌더링과정은 다음과 같다.HTML, CSS, JS, 이미지 ,폰트 파일 등 렌더링에 필요한 리소스를 요청하고 서버로부터
DOM(Documnent Object Model)은 HTML 문서의 계층적 구조와 정보를 표현하며 이를 제어할 수 있는 API, 즉 프로퍼티와 메서드를 제공하는 트리 자료구조다.HTML 요소는 HTML 문서를 구상하는 개별적인 요소를 의미한다.div : 시작태그clas
23장 실행 컨텍스트에서 살펴본 바와 같이 함수를 호출하면 함수 코드가 평가되어 함수 실행 컨텍스트가 생성된다.이 때 생성된 함수 실행 컨텍스트는 실행 컨텍스트 스택(콜 스택이라고도 부름)에 푸시되고 함수코드가 실행.함수 실행 종료시 함수 실행 컨텍스트는 실행 컨텍스트
Ajax(Asnchronous JavaScript and XML)란 JS를 사용하여 브라우저가 서버에게 비동기 방식으로 데이터를 요청하고, 서버가 응답한 데이털르 수신하여 웹페이지를 동적으로 갱신하는 프로그래밍 방식을 말한다.Ajax는 브라우저에서 제공하는 Web AP
REST(REpresentational State Transfer)는 HTTP/1.0과 1.1의 스펙 작성에 참여했고 아파치 HTTP 서버 프로젝트의 공동 설립자인 로이 필딩의 2000년 논문에서 처음 소개되었다.REST의 기본 원칙을 성실히 지킨 서비스 디자인을 "R
js는 콜백 함수를 사용해 비동기 처리를 하지만, 가독성이 나쁘고 에러 처리가 곤란하기에 ES6에서는 비동기 처리를 위한 또 다른 패턴으로 프로미스를 도입했다.get 함수는 비동기 함수로 비동기 함수를 호출 시 함수 내부의 비동기로 동작하는 코드가 완료되지 않았다 해도
ES6에서 도입된 제너레이터는 코드 블록의 실행을 일시 중지했다가 필요한 시점에 재개할 수 있는 특수한 함수다. 제너리에터와 일반 함수의 차이는 다음과 같다.제너레이터 함수는 함수 호출자에게 함수 실행의 제어권을 양도할 수 있다.제너레이터 함수는 함수 호출자와 함수의
에러가 발생하지 않는 코드 작성은 불가능하다. 발생한 에러에 대해 대처하지 않고 방치하면 프로그램은 강제 종료된다.try...catch 문을 사용해 발생한 에러에 적절하게 대응하면 프로그램이 강제 종료되지 않고 계속햇거 코드 실행이 가능하다.에러 처리 방법은 크게 두
모듈이란 애플리케이션을 구성하는 개별적 요소로서 재사용 가능한 코드 조각을 말한다. 일반적으로 모듈은 기능을 기준으로 파일 단위로 분리한다. 이 때 모듈이 성립하려면 모듈은 자신만의 파일 스코프(모듈 스코프)를 가질 수 있어야 한다. 모듈의 모든 자산은 캡슐화되어