ECMAScript는 JavaScript의 표준화된 버전을 정의하는 스크립트 언어입니다. ECMAScript는 ECMA International이라는 국제 표준화 기구에서 관리하며, JavaScript의 기반이 되는 기술적 규격을 제공합니다. ECMAScript는 JavaScript 엔진을 구현하는 데 사용되며, 웹 브라우저 및 서버 측 JavaScript와 같은 다양한 플랫폼에서 실행될 수 있습니다.
ECMAScript는 버전별로 업데이트되며, 각 버전은 새로운 기능, 개선 사항, 문법 등을 도입합니다. 현재 가장 널리 사용되는 ECMAScript 버전은 ECMAScript 2015 (또는 ECMAScript 6)이며, 이후에 ECMAScript 2016, 2017, 2018, 2019, 2020 등의 버전이 발표되었습니다. 새로운 버전의 ECMAScript는 브라우저 및 JavaScript 엔진에서 지원되기 시작하며, 개발자들은 새로운 기능을 사용하여 더 효율적이고 강력한 JavaScript 코드를 작성할 수 있습니다.
globalThis는 ECMAScript 2020에서 도입된 전역 객체(global object)입니다. 이 객체는 어디에서든 전역 범위에서 접근 가능하며, 전역 스코프에서 선언한 변수와 함수를 포함하는 객체입니다. globalThis는 JavaScript 환경에서 전역 객체에 일관된 방식으로 접근할 수 있는 표준화된 방법을 제공합니다.
기존에는 웹 브라우저에서는 window
객체가 전역 객체로 사용되었고, Node.js 환경에서는 global
객체가 사용되었습니다. 그러나 이러한 전역 객체의 이름이 호스트 환경에 따라 다르게 정의되는 문제가 있었습니다. ECMAScript는 이러한 호환성 문제를 해결하고 일관된 접근 방식을 제공하기 위해 globalThis를 도입했습니다.
예를 들어, 브라우저 환경에서 window
객체와 동일한 기능을 globalThis를 사용하여 다음과 같이 사용할 수 있습니다.
// 브라우저 환경에서
console.log(globalThis === window); // true
globalThis.alert('Hello, world!');
또는 Node.js 환경에서 globalThis를 사용할 수 있습니다.
// Node.js 환경에서
console.log(globalThis === global); // true
globalThis.console.log('Hello, world!');
globalThis를 사용하면 ECMAScript 코드를 호스트 환경에 관계
없이 일관된 방식으로 작성할 수 있으며, 브라우저 환경과 Node.js 환경을 동시에 지원하는 코드를 더 쉽게 작성할 수 있습니다.