웹페이지에 생동감을 불어넣기 위해 만들어진 프로그래밍 언어. 브라우저와 서버에서 실행할 수 있다. 이 외 자바스크립트 엔진(JavaScript engine)이 내장된 모든 디바이스에서 동작한다.
스크립트 : 자바스크립트로 작성한 프로그램. HTML 안에 작성 가능. 웹페이지를 불러올 때 자동으로 실행된다.
브라우저별 자바스크립트 엔진
-V8 : Chrome, Opera
-SpiderMonkey - Firefox
-Trident / Chakra - IE (버전에 따라 다름)
1.엔진이 스크립트를 읽는다.(파싱)
2.읽어 들인 스크립트를 기계어로 전환한다.(컴파일)
3.기계어로 전환된 코드가 실행된다.
엔진은 프로세스 각 단계마다 최적화를 진행하는데, 실행 중인 코드를 감시하며 이 코드로 흘러가는 데이터를 분석하고, 분석 결과를 토대로 컴파일된 코드를 다시 최적화하기도 한다.
동일 출처 정책 : 자바스크립트를 사용해 한 창에서 다른 창을 열 때, 도메인이나 프로토콜, 포트가 다르다면 페이지에 접근할 수 없다.
이를 피하기 위해서는 두 페이지가 데이터 교환에 동의해야 하고, 동의와 관련된 특수한 자바스크립트 코드를 포함하고 있어야한다.
사용자의 보안을 위해 만들어진 제약사항이다. (ex. http://anysite.com에서 받아온 페이지가 http://gmail.com 에서 받아온 페이지 상의 정보에 접근해 중요한 개인정보를 훔치는 걸 막기 위함)