정의
자바스크립트는 웹페이지에 생동감을 불어넣기 위해 만들어진 프로그래밍 언어입니다.
자바스크립트로 작성한 프로그램을 스크립트(script) 라고 부릅니다. 스크립트는 웹페이지의 HTML 안에 작성할 수 있는데, 웹페이지를 불러올 때 스크립트가 자동으로 실행됩니다.
스크립트는 특별한 준비나 컴파일 없이 보통의 문자 형태로 작성할 수 있고, 실행도 할 수 있습니다.
웹 페이지를 자동차에 비유하자면, HTML은 자동차의 뼈대, CSS는 자동차의 외관, JavaScript는
자동차의 동력원인 엔진이라고 볼 수 있다.
JS 사용하면 사이트를 동적 으로 만들수 있고 보다 더 나은 이쁜 UI를 만들수 있다
자바랑 연관성
이름이 비슷해서 연관있어보이는 없다..
처음 만들어졌을 당시 LiveScript 라고 불렸는데. 당시 자바의 인기가 아주 높아 상황이었다 JS관련인들은 자바의 '동생' ? 격인 언어로
홍보하면 도움이 될거같아 이름을 JavaSript 로 바꿨습니다.
엔진
자바스크립트는 브라우저뿐만 아니라 서버에서도 실행할 수 있습니다 자바스크리트 엔진 이라
불리는 특별한 프로그램이 들어 있는 모든 디바이스에서도 작동합니다.
브라우저엔 자바스크리트 가상 머신이라 불리는 엔진이 내장되어 있습니다
엔진마다 특유의 코드네임이 있습니다
- V8 - 대표적으로 가장 유명한 엔진입니다! Chrome 과 Opera에서 사용하는 엔진입니다
- SpiderMonkey - FireFox에서 사용하는 엔진
- Charka - Microsoft Edge에서 사용하는 엔진
엔진은 어떻게 작동하나
- 엔진( 브라우저라면 내장엔진 ) 이 스크립트를 읽는다 -
- 읽어 들인 스크립트를 기계어로 전환한다 - 컴파일
- 기계어로 전환된 코드가 실행된다.기계어로 전화 되었기 때문에 실행 속도가 빠르다 .
자바스크립트는 인터프리터 언이기 떄문에 기계어로 바꿔야 한다
우리가 자바스크립트로 짠 언어를 컴퓨터가 읽을 수 있도록 즉 기계어로 변환시키는 과정을 컴파일이라 생각하면 좋을거 같다
엔진은 프로세스 각 단계마다 최적화를 진행한다. 심지어 컴파일이 끝나고 실행중인 코드를 감시하면서
이코드로 흘러가는 데이터를 분석하고, 분석 결과를 토대로 기계어로 전환된 코드를 다시 최적화하기도 한다
이런 과정을 거치면 자바스크립트 실행속도는 더욱 더 빨라진다
자바스크립트는 동기식 언어 (싱글 쓰레드 언어)
의미는 쉽게 풀어쓰면 한 번에 한 가지 일 밖에 처리할 수 없다는 것을 의미합니다. (어려운 용어로는 Call stack이 하나라고 표현 합니다)
쉽게 말하면 전화를 하면서 밥을 못먹는거와 같이 JS가 무언가를 하고 있을떄 다른일을 못한다
실행하고 있는 함수가 있는 경우에 다른 일을 할 수가 없고, 다른 일들이 블락되게 된다 이렇게 되면 브라우저에서 오래 걸리는 작업이 실행될 경우, 웹 페이지의 UI는 멈춰버리고, 사용자는 어떠한 행동도 할 수 없게 됩니다
이 때 사용하는 것이 바로 비동기 콜백입니다.
- 이부분 공부 필요 !!
주요 라이브러리
JQuery
React.js
Node.js
Npm
파생언어
TypeScript
'JavaScript' 카테고리의 다른 글
Js 호이스팅 (0) | 2023.01.24 |
---|---|
JS For in & For of (0) | 2023.01.24 |
Js Stack, Queue (0) | 2023.01.23 |
데이터타입에 대하여 (0) | 2023.01.20 |
함수와 객체 (0) | 2023.01.19 |