ECMAScript 문법
자바스크립트의 객체의 개념과 이해
자바스크립트에서는 함수를 일급 객체(first class object)로 불린다. 일급 객체는 다른 객체들에게 일반적으로 적용되는 연산을 모두 지원하는 객체를 의미한다.
자료형과 변수
변수의 개념과 선언하고 사용하는 방법에 대하여 알아본다.
구문 및 선언
사용자 정의 예외(exception)를 발생시킨다. throw 이후의 실행문은 중지되고 제어가 호출 스택(stack)의 첫 번째 catch 블록으로 전송된다. catch 블록이 없으면 해당 함수는 종료된다.
지정한 조건의 결과 값이 참(true)인 경우와 그렇지 않은 경우를 나누어서 코드를 실행한다.
for...of 구문은 반복 가능한 객체에 대해서 일회 반복하면서 각 개별 프로퍼티 값에 대응하는 실행문 루프를 생성할 수 있다.
반복문, 분기문(switch) 또는 label 문을 종료하고 그 다음 코드로 프로그램 제어를 넘긴다.
연산자
void 연산자는 주어진 값을 undefined로 바꾸어 줄 필요가 있을 때 사용된다.
함수
자바스크립트에서 함수는 코드를 구성하는 기본 단위이다. 대단히 중요하므로 함수의 개념을 확실히 이해해야 한다.
ES6에 추가된 화살표 함수 표현(arrow function expression)은 function 표현에 비해 구문이 짧아 코드 최적화에 도움을 준다.
즉시 실행 함수는 자바스크립트가 갖는 대표적인 특징이며 전역 공간의 남용을 막는 좋은 패턴이다.
지정된 이름에 대한 새로운 제너레이터 함수를 바인딩한다.
배열
실제로 데이터 유형이 배열(Array)이 아니지만 배열처럼 인덱스를 통해 값을 탐색할 수 있는 자료 구조를 가진 유형을 보통 유사 배열(array-like)이라고 부른다.
JavaScript class는 ECMAScript 2015을 통해 소개되었으며, 기존 prototype 기반의 상속 보다 명료하게 사용할 수 있다. Class 문법은 새로운 객체지향 상속 모델을 제공하는 것은 아니다. JavaScript class는 객체를 생성하고 상속을 다루는데 있어 훨씬 더 단순하고 명확한 문법을 제공한다.
표현식
기존의 표준 동기 함수와 크게 다르지 않으며 선언식 함수에서 function 키워드 앞에 async 키워드를 둔다.
자바스크립트는 Promise 객체가 나오기 전부터 Thenable 객체라는 개념으로 비동기 처리를 지원했다. Promise 객체가 나오면서 절대적인 존재감은 아니지만 그래도 필요에 따라 현재도 사용되고 있다. ..
구조 분해 할당 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있는 새로운 표현식이다.
전개 구문을 사용하면 배열이나 문자열과 같이 반복 가능한 문자를 0개 이상의 인수 (함수로 호출할 경우) 또는 요소 (배열 리터럴의 경우)로 확장하여, 0개 이상의 키-값의 쌍으로 객체로 확장시킬 수 있다.
ESMAScript 지시자
모듈 단위로 스크립트를 내보내거나 가져올 수 있다.
최적화 작업
그 밖의 내용들
ECMAScript 2015(ES6)에는 새로운 문법이나 빌트인(built-in) 오브젝트 뿐만이 아니라, 프토토콜(protocol: 규약)이라는 메커니즘(mechanism)이 추가되었다. 프로토콜은 정해진 ..
자바스크립트에서 유효범위(scope)와 컨텍스트(context)에 대한 개념은 매우 중요하다.
템플릿 리터럴은 내장된 표현식을 허용하는 문자열 리터럴이다. 여러 줄로 이뤄진 문자열과 문자 보간기능을 사용할 수 있다. 이전 버전의 ES2015사양 명세에서는 "template strings" (템플릿 문자열)..
객체에서 공통으로 사용하는 작업을 내장된 Symbol로 사용하는 규약(프로토콜: protocol)을 의미한다.
유효 범위와 관련해서 클로저(closure) 패턴에 대해 이해해보자.