자바스크립트란?
1.정의
자바스크립트는 '웹페이지에 생동감을 불어넣기 위해' 만들어진 프로그래밍 언어이다.
자바스크립트로 작성한 프로그램을 스크립트(script) 라고 부르며,
스크립트는 웹페이지의 HTML 안에 작성할 수 있고 웹페이지를 불러올 때 자동으로 실행된다.
참고로 자바스크립트는 자바와 아무런 연관이 없으며, 당시 인기 높던 자바의 유명세를 이용하고자
기존 'LiveScript'라는 이름에서 'JavaScript'라는 이름을 가지게 되었다.
자바스크립트는 브라우저뿐만 아니라 서버에서도 실행할 수 있고, 자바스크립트 엔진을 보유한
모든 디바이스에서 실행할 수 있다.
각 브라우저는 자바스크립트 가상 머신이라 불리는 엔진이 내장되어 있다.
Chrome과 Opera는 V8, Firefox에는 SpiderMonkey라는 이름의 엔진이 들어있다.
Edge는 ChakraCore, Safari는 SquirrelFish가 들어있다.
주요 브라우저의 이름은 알아둘 필요가 있는데, 특정 기능이 특정 브라우저에서만 작동할 수 있기 때문이다.
각 엔진들은 스크립트를 읽고(파싱), 기계어로 전환하며(컴파일), 실행시킨다.
기본적으로 자바스크립트는 인터프리터 언어이지만, 엔진의 컴파일과 최적화 과정 덕분에 빠른 속도로 실행된다.
2.브라우저에서 할 수 있는 일
모던 자바 스크립트는 메모리나 CPU같은 로우레벨 영역의 조작을 허용하지 않는 안전한 언어이다.
단, 실행 환경에 따라 큰 차이가 발생하는데, Node.js환경에선 파일을 읽거나 쓰고, 네트워크 요청 함수를 지원한다.
브라우저 환경에서는 웹 페이지 조작, 클라이언트와 서버 간 상호작용에 관련된 작업을 할 수 있다.
- 페이지에 HTML 추가 혹은 수정
- 마우스 클릭이나 포인터의 움직임, 키보드 키 등 이벤트에 반응하기
- 네트워크를 통해 원격 서버에 요청을 보내거나, 파일 다운로드, 업로드 하기
- 쿠키를 가져오거나 설정하기
- 사용자에게 질문을 건네거나 메시지 보여주기
- 클라이언트 측에 데이터 저장하기
3.브라우저에서 할 수 없는 일
악성 웹 페이지로부터 위협을 막기 위해 브라우저는 자바 스크립트에 제약을 걸어둔다.
카메라나 마이크같은 디바이스와 상호작용을 위해서 사용자의 명시적인 허가가 있어야 한다.
파일을 다룰 수는 있지만, 사용자가 끌어다 두거나 파일을 선택하는 등 특정 상황에만 접근을 허용한다.
동일 출처 정책으로 동의 없이 서로 다른 두 페이지의 데이터 교환이 이루어 질 수 없다.
4.강점
자바스크립트에는 다양한 장점이 존재한다.
HTML/CSS와 완전히 통합할 수 있고 모든 주요 브라우저에서 기본 언어로 사용되는 등
다양한 작업을 할 수 있으며 브라우저에서 사용되는 주요 언어이다.
5.다른 언어
추가적인 기능 구현을 위해 CoffeScipt, Flow, Dart 등의 언어가 존재한다.
그 중 TypeScript는 개발을 단순화 하고 복잡한 시스템을 지원하고자 자료형의 명시화에 집중해 만든 언어이다.
이들은 브라우저에서 실행되기 전에 자바스크립트로 변환할 수 있는 언어들이다.
위 글은 모던 JavaScript 튜토리얼 - 자바스크립트란? 을 참조하여 작성하였습니다.
'TIL > 자바스크립트' 카테고리의 다른 글
[TIL] 모던 자바스크립트 정독하기 - 자바스크립트 기본(1) (0) | 2023.05.01 |
---|---|
[TIL] 모던 자바스크립트 정독하기 - 개발자 콘솔 (0) | 2023.04.30 |
[TIL] 오늘의 자바스크립트 - Closure(2) (0) | 2023.04.27 |
[TIL] 오늘의 자바스크립트 - Execution Context (0) | 2023.04.27 |
[TIL] 오늘의 자바스크립트 - Call Stack (0) | 2023.04.26 |