Iteration -ECMAScript


1. 개요

Iteration은 반복 처리를 나타내며 이를 위한 프로토콜(Protocol)을 갖고 있습니다.

protocol 이라고 하면 통신이 연상되는데
통신에 있어 프로토콜은 약속된 기준과 방법으로 데이터를 송수신하는 것을 의미합니다. (통신 프로토콜 = 통신규약)

ES6에서 프로토콜도 규약입니다.
Iteration을 위한 규약이 있으며 이를 지켜야 반복 처리가 가능합니다.

예를 들어 자바스크립트에서 Array(배열)를 반복 처리 하기 위해서는
배열이 반복할 수 있는 Object(오브젝트)여야 하며,
오브젝트에 반복 처리를 할 수 있는 method(메서드)가 필요합니다.
이러한 규약이 ES6Iteration Protocol (반복 처리 규약) 입니다.

자세히 보기

Arrow (화살표 함수) -ECMAScript

arrow(화살표) 함수는
function(param) {코드} 형태를 축약한 것으로

(param) => {코드}

형태로 작성합니다.

화살표 함수 표현(arrow function expression)은 function 표현에 비해 구문이 짧고 자신의 this, arguments, super 또는 new.target을 바인딩 하지 않습니다.
화살표 함수는 항상 익명입니다. 이 함수 표현은 메소드 함수가 아닌 곳에 가장 적합합니다. 그래서 생성자로서 사용할 수 없습니다.

자세히 보기

키워드, 블록 스코프 -ECMAScript

글로벌 변수 오해

글로벌 오브젝트에 작성한 변수는 글로벌 오브젝트가 스코프입니다.
글로벌 오브젝트에 작성하여 글로벌 변수라고 부르는 것이지,
글로벌 오브젝트에서 보면 로컬 변수입니다.

var 키워드를 작성하지 않으면 글로벌 변수로 간주한다는 점으로 인해
var키워드를 작성하지 않을 뿐이지 글로벌 변수는 var 키워드를 사용하지 않는다는것이 아닙니다.

글로벌 변수도 var 키워드를 사용하여

var global = “”;

형식으로 작성하는 것이 정확한 작성법입니다.

글로벌 변수는 객체지향 관점에서 보면 단점이라고 할 수 있습니다.
function 안에서 글로벌 오브젝트에 작성된 글로벌 변수를 사용할 수는 있지만,
다른 프로그램에서 글로벌 변수 값을 변경 하거나 재사용 할 수도 있는 위험이 있습니다.
이러한 경우는 자칫 오류를 만들게 되어 객체 지향 기본에서 어긋나는 행동입니다.

자세히 보기

Strict mode -ECMAScript


Strict mode

strict mode
JavaScript 코드가 “엄격 모드”에서 실행되도록 정의합니다.

“strict mode”지시문은 ECMAScript 버전 5에서 새로 추가되었습니다.

IE9 이하를 제외한 모든 최신 브라우저는 strict mode를 지원합니다.

가끔 엄격하지 않은 기본값을
“느슨한 모드(sloppy mode)”라고 부르기도 합니다.
공식적인 용어는 아니지만 혹시 모르니 알아두세요.

"strict mode"지시문은 script 나 function의 시작 부분에서만 인식됩니다.

자세히 보기