ECMA Script 6 - 두고두고 보는 자바스크립트 표준 레퍼런스

ES5에서 Array.isArray()와 같이 오브젝트 프로퍼티로 작성된 isArray()를 함수라고 했으며, Sports.prototype.get = function(){}과 같이 prototype에 연결된 get()을 메서드라고 했습니다. 함수와 메서드를 구분해야 하는 이유는 new 연산자로 인스턴스를 생성할 때 인스턴스에 할당되는 기준이 다르기 때문입니다.

1

Node.js와 React를 주로 사용하는 환경에서 근무하다 보니 자연스럽게 JavaScript에 대한 관심이 많아졌다. 특히 ES6와 관련된 기사나 글이 많아서 MDN을 주로 찾아보고 있었는데, 한글로 된 ES6 관련 책이 나와서 잽사게 구매했다. 이 책 덕분에 ES6와 관련된 몇가지 것들은 속 시원하게 해결했다.

2

책이 ES6의 주요 스펙을 전부 커버하고 있고, 뒷 부분에 Proxy를 비롯해서 개인적으론 넘사벽이라 생각되는 기술에 대한 내용도 다루고 있기 떄문에 초심자의 경우 모든 챕터에 욕심을 부리기보다 필요한 부분을 잘 참고하는 요령이 필요한 듯 싶다.


빌트인은 스펙 용어 입니다. 이 책에서 빌트인이란, 자바스크립트 엔진이 렌더링(Rendering)하면서 만든 것으로 개발자 프로그램에서 사전 처리를 하지 않고 바로 사용할 수 있는 것을 의미합니다.

[…] 자바스크립트에서 undefined는 값 입니다.

[…] window 오브젝트에 let 변수가 없다는 것은 window 오브젝트에 let 변수가 설정되지 않았다는 의미가 됩니다. 이 점이 var 변수와 let 변수의 차이입니다.

[…] 반면, let 변수는 호이스팅이 되지 않습니다. 즉, let 변수를 사용하는 코드를 위에 작성하고 아래에 변수를 선언하면 에러가 발생합니다.

화살표 함수가 간단하게 코드를 작성할 수 있어 편리하지만 this의 참조를 고려해야 합니다. […] prototype에 화살표 함수를 연결하면 화살표 함수 블록에서 this가 인스턴스를 참조하지 못합니다. […] 따라서 화살표 함수가 아닌 function 키워드 함수를 prototype에 연결해야 합니다.

따라서 오브젝트에 next() 메서드가 있으면 이터레이터 프로토콜이 적용된 것 입니다.

프로퍼티 키 값을 0부터 1씩 증가하면서 순차적으로 작성하고, length를 프로퍼티 키로 하여 전체 프로퍼티 수를 작성해야 array-like 입니다. 두 가지 중 하나라도 만족하지 않으면 Array-like가 아닙니다.

프락시는 메서드의 기본적인 오퍼레이션과 행위를 중간에서 가로채어 이를 대신하는 일련의 처리를 의미합니다. 중간에서 가로채기를 하기 위해서는 사전에 약속된 방법을 따라야 합니다. 오퍼레이션과 행위를 바꾸는 것보다 추가하는 측면이 강합니다.

Reflect는 빌트인 오브젝트로 […] 모든 메서드가 정적 메서드 […] Reflect 오브젝트는 엔진처리 효율성과 간단하게 코드를 작성할 수 있는 사용성에 중점을 두었다고 필자는 생각합니다.

Written on February 27, 2017