음.. 이 파트에서는 크게 두 가지에 대한 내용이 나옵니다. 아, 이 기준은 내가 중요하다고 생각하는 개념에서 뽑아낸 것이니, 참고해주시길 바랍니다.
그래서 이를 디테일하게 풀어보려 했는데요.
자바스크립트 변천사를 정말 잘 설명해주신 분의 글이 있어, 이 분 글을 보시면, 그래도 그 변천사를 더욱 맛있게(?) 이해할 수 있을 거 같아요.
단순히 기존 글을 따라서 쓰는 것은 의미가 없다고 생각하기에, 더 효율적인 방향에서 이를 링크로만 첨부하기로 했습니다.
자바스크립트의 가장 큰 특징은 무엇일까요?
많은 다양한 특징들이 있겠지만, 가장 큰 특징은 웹 브라우저에서 동작하는 프로그래밍 언어라는 것이죠.
원래 예전에는 '유일'이라는 명칭을 주었는데, 최근에는 pyscript
가 나오면서, 이러한 유일의 의미가 많이 희석되는 것 같아요.
또한, 인터프리터 언어이며, 최적화를 위해 일부 소스는 컴파일하고 실행하는 체계를 따릅니다.
또한 명령형, 함수형, 객체지향 프로그래밍 패러다임을 지원하는 언어이며, 동시에 프로토타입이라는, 원형의 객체를 기반으로 새로운 객체를 생성하는 원리에 기반한 프로그래밍 언어라고 할 수 있겠네요.
전술했던 링크를 들어가 이해하는 것이 더 나을 것 같아 링크로 남겨둡니다!
제가 산 책은 2020년 기준이라, 모든 케이스들이 적혀 있지 않았어요.
따라서 ECMAScript의 새로운 제안들을 찾아야 했는데요. TC39 github 문서를 통해 이에 대해 좀 더 알 수 있게 되었어요! 🥰
결국 우리가 원활한 프로그래밍을 위해 사용할 수도 있는 문법이니, 알아두는 게 좋겠죠? 😉
버전 | 출시 연도 | 특징 |
---|---|---|
ES5 | 2009 | HTML5와 함께 출연한 표준안 JSON , strict mode , 접근자 프로퍼티, 프로퍼티 어트리뷰트 제어, 향상된 배열 조작을 위한 메서드 지원 |
ES6 | 2015 | let / const , class , template literal , destructuring reassignment , spread , rest parameter , Symbol , Promise , Map / Set , for ... of , generator , Proxy , import / export |
ES7 | 2016 | 지수 연산자(** ), Array.prototype.includes , String.prototype.includes |
ES8 | 2017 | async/await , Object 정적 메서드(values, entries, keys ), Object.getOwnPropertyDescriptors |
ES9 | 2018 | Object rest/spread 프로퍼티, Promise.prototype.finally , async generator , for await ... of |
ES10 | 2019 | Object.fromEntries , Array.prototype.flat , Array.prototype.flatMap , optional catch binding |
ES11 | 2020 | String.prototype.matchAll , BigInt , globalThis , Promise.allSettled , null 병합 연산자, 옵셔널 체이닝 연산자, for ... in enumeration order |
ES12 | 2021 | String.prototype.replaceAll , Promise.any , 논리연산자와 할당 표현식 추가(??=, ||=, &&=), 숫자 자리수 구분 기호(_), 약한 참조, Intl.ListFormat, Array.prototype.sort 개선 |
ES13 | 2022 | 클래스 필드, RegExp Match Indices, Top-level await, Ergonomic brand checks for Private Fields, .at(), Accessible Object.prototype.hasOwnProperty, Class Static Block, Error Cause |
워낙 잘 설명되어 있는 글들이 많아서, 사실 이 파트는 쓸 내용이 없어요.
더 놀라운 건, 3장의 내용이 더 쓸 내용이 없더라구요(...)
아무래도 간단한 설치나 브라우저 도구 사용에 대한 설명이기 때문이었어요.
음, 어떻게 쓸지 고민해봐야겠군요. 이상! 🌈