GRAMMAR

  • bug_report

Grammar

ECMAScript 문법

  • Object

    자바스크립트의 객체의 개념과 이해

    • 일급 객체(First Class Object)

      자바스크립트에서는 함수를 일급 객체(first class object)로 불린다. 일급 객체는 다른 객체들에게 일반적으로 적용되는 연산을 모두 지원하는 객체를 의미한다.

  • Data structures and Variable

    자료형과 변수

    • 변수(Variable)

      변수의 개념과 선언하고 사용하는 방법에 대하여 알아본다.

  • Statements and Declarations

    구문 및 선언

    • throw

      사용자 정의 예외(exception)를 발생시킨다. throw 이후의 실행문은 중지되고 제어가 호출 스택(stack)의 첫 번째 catch 블록으로 전송된다. catch 블록이 없으면 해당 함수는 종료된다.

    • if...else

      지정한 조건의 결과 값이 참(true)인 경우와 그렇지 않은 경우를 나누어서 코드를 실행한다.

    • for...of

      for...of 구문은 반복 가능한 객체에 대해서 일회 반복하면서 각 개별 프로퍼티 값에 대응하는 실행문 루프를 생성할 수 있다.

    • break

      반복문, 분기문(switch) 또는 label 문을 종료하고 그 다음 코드로 프로그램 제어를 넘긴다.

  • Operators

    연산자

    • void

      void 연산자는 주어진 값을 undefined로 바꾸어 줄 필요가 있을 때 사용된다.

  • Function

    함수

  • Array

    배열

    • 유사 배열(array-like)

      실제로 데이터 유형이 배열(Array)이 아니지만 배열처럼 인덱스를 통해 값을 탐색할 수 있는 자료 구조를 가진 유형을 보통 유사 배열(array-like)이라고 부른다.

  • Classes

    JavaScript class는 ECMAScript 2015을 통해 소개되었으며, 기존 prototype 기반의 상속 보다 명료하게 사용할 수 있다. Class 문법은 새로운 객체지향 상속 모델을 제공하는 것은 아니다. JavaScript class는 객체를 생성하고 상속을 다루는데 있어 훨씬 더 단순하고 명확한 문법을 제공한다.

  • Expressions

    표현식

    • async function expression

      기존의 표준 동기 함수와 크게 다르지 않으며 선언식 함수에서 function 키워드 앞에 async 키워드를 둔다.

    • Thenable

      자바스크립트는 Promise 객체가 나오기 전부터 Thenable 객체라는 개념으로 비동기 처리를 지원했다. Promise 객체가 나오면서 절대적인 존재감은 아니지만 그래도 필요에 따라 현재도 사용되고 있다. ..

    • 구조 분해 할당 구문(Destructuring assignment syntax)

      구조 분해 할당 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있는 새로운 표현식이다.

    • 전개 구문(Spread syntax)

      전개 구문을 사용하면 배열이나 문자열과 같이 반복 가능한 문자를 0개 이상의 인수 (함수로 호출할 경우) 또는 요소 (배열 리터럴의 경우)로 확장하여, 0개 이상의 키-값의 쌍으로 객체로 확장시킬 수 있다.

  • Directives

    ESMAScript 지시자

    • export and import

      모듈 단위로 스크립트를 내보내거나 가져올 수 있다.

  • Optimization works

    최적화 작업

  • Misc

    그 밖의 내용들

    • Iteration protocols

      ECMAScript 2015(ES6)에는 새로운 문법이나 빌트인(built-in) 오브젝트 뿐만이 아니라, 프토토콜(protocol: 규약)이라는 메커니즘(mechanism)이 추가되었다. 프로토콜은 정해진 ..

    • Scope vs Context

      자바스크립트에서 유효범위(scope)와 컨텍스트(context)에 대한 개념은 매우 중요하다.

    • Template literals

      템플릿 리터럴은 내장된 표현식을 허용하는 문자열 리터럴이다. 여러 줄로 이뤄진 문자열과 문자 보간기능을 사용할 수 있다. 이전 버전의 ES2015사양 명세에서는 "template strings" (템플릿 문자열)..

    • 실행 컨텍스트(execution context)에 따른 변수의 고유성

    • 웰 노우 심벌(Well-known Symbols)

      객체에서 공통으로 사용하는 작업을 내장된 Symbol로 사용하는 규약(프로토콜: protocol)을 의미한다.

    • 클로저(closure)

      유효 범위와 관련해서 클로저(closure) 패턴에 대해 이해해보자.