You Don’t Know JS Yet 1장을 읽고 정리한 내용을 CHAT GPT에 정제한 내용
자바스크립트를 온전히 이해하는 사람은 없지만, 누구나 자바스크립트를 배울 수 있고 학습을 통해 친해질 수 있습니다. 이 글에서는 자바스크립트의 배경, 역사, 그리고 주요 개념을 포괄적으로 다룹니다.
자바스크립트 학습은 "여행"과 같습니다. 목적지가 아닌 방향성을 가지고 꾸준히 탐구해야 합니다.
자바스크립트라는 이름은 마케팅 목적에서 탄생했습니다.
왜 이름이 자바스크립트일까요?
자바 개발자들에게 어필하기 위해 "자바"라는 이름을 사용했고, 당시 "스크립트(script)"는 가벼운 프로그램을 의미했습니다.
자바스크립트는 TC39 위원회에 의해 관리됩니다. 이 위원회는 브라우저 제조사(모질라, 구글, 애플), 하드웨어 제조사(삼성 등)의 대표들로 구성되어 있습니다.
TC39에서 모든 제안은 다섯 단계(0 ~ 4)를 거칩니다.
JS에는 공식 버전이 없습니다.
모든 자바스크립트는 단 하나의 명세를 따르며, 브라우저별로 반영 시기가 다를 뿐입니다.
자바스크립트는 브라우저, 서버, 로봇, IoT 기기 등 다양한 환경에서 실행됩니다.
contains()
대신 includes()
를 도입한 사례.alert("JS야 안녕!");
alert()
는 명세서에는 없지만 모든 브라우저에서 지원하는 함수입니다.
fetch()
, getUserMedia()
등.명세서에 정의되지 않은 API는 "부록 B"에서 다루며, 이는 웹에서만 사용되는 기능을 포함합니다.
자바스크립트는 다중 패러다임 언어로, 절차적, 객체 지향, 함수형 프로그래밍 스타일 모두를 지원합니다.
자바스크립트는 실행 전에 파싱과 컴파일 단계를 거칩니다.
자바스크립트는 JIT 컴파일러를 사용해 실행 중 성능을 최적화합니다.
ES5부터 도입된 엄격 모드(strict mode)는 자바스크립트 엔진이 코드를 최적화하고 효율적으로 실행할 수 있도록 돕습니다.
자바스크립트 이름의 유래
자바스크립트는 마케팅 목적으로 자바(Java)와 연관된 이름으로 만들어졌으며, 초기에는 모카(Mocha), 이후 라이브스크립트(LiveScript)로 불렸습니다. 넷스케이프와 썬 마이크로시스템즈의 법적 관계로 현재 이름이 유지됩니다.
명세 관리 (TC39)
TC39 위원회는 자바스크립트 명세를 관리하며, 브라우저 제조사(구글, 애플, 모질라)와 하드웨어 제조사(삼성) 등의 대표로 구성됩니다. 모든 변경 사항은 5단계 절차를 거쳐 국제 표준에 포함됩니다.
웹과의 관계
자바스크립트는 웹, 서버, IoT 등에서 사용되며, 명세와 브라우저 엔진 간의 호환성을 유지하기 위해 노력합니다. 웹 전용 API인 alert()
나 fetch()
는 명세에 없지만 브라우저 환경에서 지원됩니다.
프로그래밍 패러다임
자바스크립트는 절차적, 객체 지향, 함수형 프로그래밍을 모두 지원하는 다중 패러다임 언어입니다.
호환성
실행 과정
트랜스파일 및 번들링 -> 파싱 -> 바이트 코드 컴파일 -> 실행 단계를 거치며, JIT 컴파일러로 성능을 최적화합니다.
엄격 모드
ES5에서 도입된 엄격 모드는 코드의 안전성과 최적화를 돕는 메커니즘입니다. ES6 모듈에서는 기본 적용됩니다.