ECMAScript
ECMA-262 기술 규격에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어.
JavaScript 를 표준화하기 위해 만들어졌다.
스크립트 언어가 준수해야 하는 규칙, 세부 사항 및 지침을 제공한다.
JavaScript
ECMAScript 사양을 준수하는 범용 스크립팅 언어.
ECMAScript 문서를 본다면 어떻게 스크립트 언어를 만들 수 있는지 로 구성 되어 있다면,
JavaScript 문서는 어떻게 스크립트 언어를 쓸 수 있는지로 구성되어 있는 정도의 차이.
JavaScript 엔진
JavaScript 코드를 이해하고 실행하는 프로그램 또는 인터프리터.
Google Chrome >> V8,
Mozilla Filrefox >> SpiderMonkey,
microsoft Edge >> Chakra
엔진에 따라 생기는 차이점은,
- 수행 능력
엔진이 얼마나 효율적으로 JS 를 처리하고 있는지에 따라 속도에서 차이가 날 수 있음. - 지원되는 ECMAScript 가 다름
브라우저마다 지원하는 ES의 버전이 다르기 때문에, 각 회사의 업데이트에 따라 다를 수 있음.
ECMAScript 6
ECMA-262 표준의 제 6판으로, ES6, ES2015, ESMAScript 2015 로 표기하기도 함.
이전 버전 대비 새로운 개념들을 많이 추가해, 변화가 컸던 버전.
이 때 추가된 주요 개념은,
- const and let
변수를 선언하기 위한 키워드로, 이전까지 var 만을 사용하다가 관리 측면에서 호이스팅과 같은 문제들이 발생해,
변경 불가능한 값은 const로, 변경 가능한 값은 let으로 선언하기로 함.
관련해서는 한번 이전 글에서 다룬 적이 있다.
- 화살표 함수 (람다식)
함수를 정의하는 function 없이 함수를 만들 수 있으며, return 없이 자동으로 반환할 수 있다.
( ) 안에 함수의 인자가 들어가고, => 오른쪽에는 결과를 반환하는 형태. - 비구조화 할당
객체와 배열로부터 property 를 쉽게 꺼낼 수 있는 문법.
객체를 나타내는 중괄호를 열고, 그 안에 있는 property 를 언급함으로써
간단하게 내부의 속성들을 외부로 인출하여 사용할 수 있음. - for...of 문
반복 가능한 객체(iterable) 를 for 문 안에서 반복시켜 연속된 결과값을 얻을 수 있음.
이전 글에서 foreach, for ...in, for ...of 를 차이점 위주로 한번 다룬 적 있다.
(글 정리 후 링크 추가 https://svcbn.tistory.com/89) - Spread Operator (...)
spread 연산자는 특정 객체 또는 배열의 값을 다른 객체나 배열로 복제하거나 옮길 때 사용한다.
간편하게 깊은 복사를 하게 해 주는 연산자로, 이전 글에서 사용법에 대해 다룬 적 있다.
(글 정리 후 링크 추가 https://svcbn.tistory.com/86)
- Default Parameter (기본 매개변수)
함수 선언시 매개변수를 입력 받지 않는 경우에 대해서, 기본값을 지정할 수 있게 됨.
기존에는 파라미터에 값을 할당받지 못하는 경우 무조건 undefined 로 출력되었다고 한다... - iterator / generator 추가
설명 추가 필요
다른 글에서 한번 다룰 예정이 있다.
(이후링크추가) - module import / export 추가
설명 추가 필요
다른 글에서 한번 다룰 예정이 있다.
(이후링크추가) - Promise 도입
callback 을 익명 함수로 전달하는 과정이 반복되면서, 들여쓰기가 깊어지고 가독성이 떨어지는
callback hell 을 해결하기 위해 도입된 기법.
'공부 > JavaScript' 카테고리의 다른 글
import / export (0) | 2024.09.23 |
---|---|
Callback, Promise, Async, Await (0) | 2024.09.09 |
문자열 자르기 (1) | 2024.09.09 |
Array Sort(), Filter() (1) | 2024.09.08 |
변수, 문자열 (0) | 2024.08.27 |