본문 바로가기

Backend/Javascript

(35)
ES8 (ES2017) 이번 포스팅에선 ES8 의 기능들에 대해 알아보도록 하겠습니다. - Async functions ES 에서 그간 추가된 스펙 중에 현재 자바스크립트 프로그래밍에서 가장 많이 쓰는 기능이 아닐까 싶습니다. async functions 이 제공하는 syntax 를 통해 훨씬 향상된 비동기 프로그래밍이 가능케 되었습니다. const test1 = () => { return new Promise(resolve => { resolve(3); }); }; (async () => { const result = await test1(); console.info(result); // 3 })(); async 함수에선 await 키워드를 사용할 수 있고, await 는 전달된 promise 의 해결을 기다리는 역할을 합니..
ES7 (ES2016) 2022년에 ES7 을 포스팅하는게 맞나 싶긴 하지만.. 정리하는 차원에서 ES7 에 나온 기능들을 알아보도록 하겠습니다. ES7 부터 TC39 산하에서 출시된 첫번째 개정판입니다. - new exponentiation operator const result1 = Math.pow(10, 2); console.info(result1); // 100 const result2 = 10 ** 2; console.info(result2); // 100 새로운 거듭제곱 연산자가 추가되었습니다. 기존에 거듭제곱을 연산하기 위해선 Math.pow 메서드의 도움을 받아야 했는데, ** 연산자로 인해 좀 더 간편해진 기분입니다. 현재는 비교적 최근에 추가된 BigInt 도 ** 연산자는 처리가 가능하며, 이 점을 제외하면..
ES12 (ES2021) 이번 포스팅에선 ES12 의 기능들에 대해 알아보겠습니다. - replaceAll const test1 = '2022-03-03'; const result1 = test1.replace('-', ''); const result2 = test1.replace(/-/g, ''); console.info(result1); // 202203-03 console.info(result2); // 20220303 원래 자바스크립트에는 replaceAll 메서드가 없었습니다. 따라서 replace 메서드를 통해 replaceAll 과 같은 효과를 보려면 정규표현식을 같이 사용해야 했습니다. const result1 = test1.replaceAll('-', ''); console.info(result1); // 202..
ES11 (ES2020) 이번 포스팅에선 ES11 의 기능들에 대해 알아보겠습니다. - matchAll 정규표현식에 사용할 수 있는 새로운 메서드가 추가되었습니다. 기존에는 match 메서드를 사용해왔었는데, 어떤 차이점이 있는지 아래 코드 예제로 보도록 하겠습니다. const regex1 = /https?:\/\/www.npmjs.com\/package\/(\w*)/g; const regex2 = /https?:\/\/www.npmjs.com\/package\/(\w*)/; const domain = 'https://www.npmjs.com/package/axios'; const test1 = domain.match(regex1); const test2 = domain.match(regex2); console.info(test..
ES10 (ES2019) 이번 포스팅에선 ES10 의 기능들에 대해 알아보겠습니다. - Array.prototype.flat flat 이라는 이름 그대로 배열을 평탄화시키는 메서드가 새롭게 추가되었습니다. 이미 lodash 와 같은 유틸 함수를 제공해주는 라이브러리를 자주 사용해왔다면 그리 어색하진 않을 메서드입니다. const list1 = [1, 2, [3, 4]]; console.info(list1.flat()); // [1, 2, 3, 4] const list2 = [1, 2, [3, 4, [5, 6]]]; console.info(list2.flat()); // [1, 2, 3, 4, [5, 6]] console.info(list2.flat(2)); // [1, 2, 3, 4, 5, 6] const list3 = [1, ..
ES9 (ES2018) 이번 포스팅에선 ES9 의 기능들에 대해 알아보겠습니다. 나온진 꽤 됐지만 쓰는 기능도 있고 처음 보는 기능 (관심이 부족했는지..) 도 있어 적어보려 합니다. - Object rest/spread properties ES6 때부터 spread operator 와 rest parameters 는 도입이 되었었습니다. 먼저 이 두 문법부터 간단히 보도록 하겠습니다. const list1 = [1, 2, 3]; const list2 = [...list1, 4, 5, 6]; console.info(list2); // [1, 2, 3, 4, 5, 6] 위는 spread operator 의 예시입니다. 전개 연산자라고도 하는데 이름 그대로 Iterable 한 배열의 프로퍼티를 펼치는 역할을 합니다. 단순 펼치는게..
ECMAScript 이 포스팅을 먼저 썼어야 했을 것 같지만.. 앞선 포스팅들에서 ES2022, TS39 Process 등에 대해 알아봤었는데 그럼 ECMAScript 는 무엇인가? 에 대해 이번 포스팅에서 다뤄보도록 하겠습니다. - ECMAScript ? Wiki 의 문구를 그대로 인용하자면, ECMAScript 란 ES 라고도 불리우며 Ecma International 이 ECMA-262 기술 규격에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어를 뜻합니다. (링크) ECMAScript 는 Javascript 의 표준화를 위해 만들어졌습니다. 액션스크립트와 J스크립트 등의 다른 구현체도 포함하고 있다고 하며, Node.js 에서도 약간의 설정을 통해 ECMAScript 를 사용할 수 있습니다. 즉 ECMAScri..
TC39 Process ECMAScript 에 대해 보다보면 TC39 라는 용어가 나오는데 이게 무엇인지에 대해 이번 포스팅에서 살펴보도록 하겠습니다. 참고한 블로그의 링크를 같이 남겨놓도록 하겠습니다. - TC39 매년 ECMAScript 스펙이 하나의 스펙으로 릴리즈되는데, 여기엔 지난 에디션 이후로 승인된 모든 새로운 기능 혹은 변경이 포함되어 있습니다. TC39 는 the 39nth Technical Committee 의 약자로 Javascript 개발자, 학자 등으로 구성된 ECMA 멤버들을 포함한 ECMA International 이라는 조직의 산하 그룹입니다.이 위원회는 커뮤니티와 협력해 ECMAScript 스펙의 정의를 유지하고 발전시켜 나갑니다. ECMAScript 의 스펙을 변경하는 프로세스는 TC39 에 의..