JavaScript란?
- 웹 페이지에 생동감을 불어넣기 위해 만들어진 프로그래밍 언어(동적)
- 정적인 HTML과 CSS로 만들어진 웹 페이지를 동적으로 변경해줌
- 웹페이지 조작, 클라이언트-서버 간 상호작용에 관한 모든 일 관련
그럼 script는 뭘까?
script는 자바스크립트로 작성한 프로그램을 부르는 용어
script는 웹페이지의 HTML 안에 작성가능 -> 웹 페이지를 불러올 때 자동 실행(컴파일러 X)
• JavaScript 엔진
자바스크립트 코드를 해석하고 실행하는 인터프리터
동작과정
- 엔진이 스크립트를 읽음(파싱)
- 읽어드린 스크립트가 기계어로 전환(컴파일)
- 기계어로 전환된 코드가 실행됨 -> 기계어기 때문에 속도 빠름
뭔가 이상하다
자바스크립트는 인터프리터 언어라면서 컴파일이라는 단어가 왜 나오지..?
자바스크립트는 기본적으로는 컴파일이 필요없는 인터프리터 언어이지만
자주 반복되는 코드들은 최적화하기 위해 엔진이 컴파일 함
이렇게 우선 인터프리터 방식으로 실행하고 필요할 때 컴파일하는 방법을 JIT(Just-In-Time) 컴파일이라 함
-> 대부분의 브라우저에서 사용함
* 인터프리터 언어 vs 컴파일 언어
- 인터프리터 언어: 컴파일 X, 소스 코드를 한 줄 씩 읽어서 실행
컴파일 하는 시간은 없으나, 실행파일을 별도로 생성하지 않아서 실행시마다 인터프리터 과정이 반복됨(속도느림)
- 컴파일 언어: 컴파일러란 고급 언어로 작성된 소스 코드를 저급 언어로 번역하는 프로그램(기계어로)
컴파일러를 통해 전체 소스 코드를 한 번에 기계어로 변환 후 실행파일을 생성
컴파일 단계와 실행 단계가 분리되어 있음!(-> 실행시에는 컴파일 X, 실행 파일을 실행시키면 됨)
• JavaScript 강점
- HTML/CSS와 완전히 통합할 수 있음
- 웹 브라우저에서 동작하기 때문에 운영체제의 제한 받지 않음 -> 여러 환경에서 개발 가능
- 프론트엔드에서 사용되는 유일한 언어
• JavaScript 역할
- HTML 조작 -> HTML 요소를 추가, 제거하거나 페이지 직접 조작
- CSS 조작 -> 특정 요소에 스타일 추가, 제거
- 이벤트 처리 -> 마우스나 키보드 입력, 클릭, 스크롤 등의 이벤트에 반응하여 특정 동작 실행
- 쿠키 처리 -> 쿠키를 설정하거나 조회
- 동적인 효과 지원
'JavaScript' 카테고리의 다른 글
JavaScript DOM (0) | 2023.05.16 |
---|---|
JavaScript Hoisting(호이스팅) (0) | 2023.05.15 |
JavaScript 비동기 처리 방법(Promise, async, await) (0) | 2023.05.03 |
JavaScript 동기/비동기(동작 원리) (0) | 2023.05.03 |
JavaScript 기본 문법 (0) | 2023.04.29 |