Note TC39 위원회
확정된 명세란 무슨 뜻일까요? 자바스크립트 명세는 TC39라고 부르는 위원회에서 결정합니다. TC39는 공식적인 명세를 정의하기 전에 표준 절차를 따라 문법 변경에 대한 제안을 수렴합니다. 여전히 검토 단계에 있는 기능들을 스테이지 1(stage 1), 스테이지 2(stage 2) 등으로 부르는 것을 종종 듣게 될 것입니다. 이런 명칭은 해당 명세를 확정하기 위한 작업이 진행 중이지만, 아직 명세의 일부로 받아들여지는 과정에 있다는 의미입니다. 문법이 승인되면 브라우저 제작자들은 브라우저에 기능을 내장하기 위해 구현을 시작합니다.
즉, 언제나 새로운 문법 변경이 진행되고 있습니다. ES6까지는 이러한 문법 변경을 ES5 또는 ES6처럼 버전으로 불렀습니다. 이제부터는 문법 변경을 연도로 표시해 ES2017, ES2018 등으로 부릅니다. 또한, 복잡하긴 하지만 대부분의 자바스크립트 코드는 구형 브라우저에서 호환되는 예전 문법으로 변환할 수 있으므로, 새로운 문법이 확정되기 전에 먼저 사용할 수도 있습니다. 위험한 선택일 수도 있지만, 명세가 확정되기 전에 이미 커뮤니티에서 큰 인기를 끌어서 도입을 결정하는 경우도 가끔 있습니다. async/await나 객체 펼침 연산자도 공식적으로 확정되기 전부터 사용되었습니다.
배열, 그리고 프록시를 이용한 이터러블을 깊이 이해하면, 앞으로 살펴볼 ES6의 새로운 기능뿐만 아니라 ES6 이후에 소개될 수많은 새로운 기능도 확실하게 파악할 수 있을 것입니다.
다음 팁에서는 배열에서 존재 여부를 확인할 때 includes()
를 이용해 문제를 좀 더 쉽게 해결하는 방법을 살펴보겠습니다.