1. 자바 스크립트 언어
ㅇ 매우 유연하고 동적인 제어가 가능한 언어
ㅇ 주로, 웹 페이지의 요소들의 제어를 위해 HTML 문서에 통합 작성할 수 있는 스크립트 언어
- 초기에는 웹 브라우저에서 만 동작 가능하였지만,
- 점차, 데스크톱,서버 등에서도 실행 가능한 환경(호스트 환경)이 나타나고 있음
2. 자바 스크립트 특징
ㅇ 실행 방식 : 동적 인터프리터 형태의 언어
- 클라이언트(웹브라우저 등)에 의해서 실시간 번역 실행되며, 컴파일되지 않음
ㅇ 언어적 특징
* (다음의 여러 특징들을 함께 지원하는 멀티 패러다임 프로그래밍 언어)
- 명령형 프로그래밍(Imperative Programming)은, 기본 지원
- 객체 기반의 언어 (Object-Based Language) ☞ 자바스크립트 객체 참조
. 자바스크립트는, 자바 언어처럼 클래스 기반의 상속,캡슐화 등 처럼 객체지향 언어에서의
.. 전통적인 특성을 지원하지 않으므로, 진정한 객체지향 언어는 아니고,
.. 다만, 객체를 다루기 때문에 객체 기반의 언어라고함
. 따라서, 클래스 기반의 객체지향 언어가 아닌, `프로토타입 기반의 객체지향 언어` 임
.. (프로토타입 : 어떤 객체의 원본/원형이 되는 객체)
.. 기존에 만들어진 객체의 복제에 의해, 새로운 객체를 생성함
.. 즉, 클래스 정의 방식이 아니고, 객체의 인스턴스를 만들 때 재사용이 일어남
.. 또한, 객체 생성 후에도 프로퍼티,메소드를 동적으로 추가,삭제도 가능
- 함수형 프로그래밍 언어 (Functional Programming Language) ☞ 자바스크립트 함수 참조
. 함수를 객체 처럼 다루고, 함수에 함수를 인수로 넘기고, 함수 리터럴이 존재하는 등
- 이벤트 주도형(event-driven) 프로그래밍 언어 ☞ 자바스크립트 이벤트 참조
. 사용자가 행동하기를 기다렸다가 반응하는 이벤트 처리 위주의 언어
- 동적인 프로그래밍 언어
. 언어 내부에서 상태 관리를 해주지 않고, 개발자에게 전적으로 맡기는 동적인 플랫폼 지향
ㅇ 변수 : 동적 타입 및 바인딩 ☞ 자바스크립트 타입 참조
- 명시적인 변수 선언은 var,let 이라는 단순한 예약어 만 쓰면 가능
- 변수의 타입이 엄격하지 않음 (loosely typed)
. 다만, 각 변수가 유일한 이름 만 있으면 됨
- 실행 도중에도 변수에 저장된 데이터 타입이 동적으로 바뀔 수 있음
. 즉, 동적 바인딩으로 개체 참조(연관,association)가 실시간으로 이루어짐
ㅇ 네임스페이스 지원 문법이 없음
- 전역 객체를 선언하여 관련된 모든 속성,메소드를 그 객체의 속성으로 만들어 사용거나,
. 例) var NameSpace = {};
- 즉시실행함수(IIFE)를 사용하여 구현 함
ㅇ HTML 문서 적용 관련 ☞ 웹문서 자바스크립트 참조
- 정적인 HTML 문서에 동적으로 변화시킬 수 있는 효과를 줌
. 웹페이지가 사용자 동작에 반응하는 역동적 효과를 줌
- 적용방법 : HTML 문법에 자연스럽게 연결시켜 실행되는 방법을 채택
. HTML의 확장이며, HTML 문서 내에 자바스크립트 코드가 내장
ㅇ 비동기적 프로그래밍 가능
- 패러다임 변천 : 콜백함수 → 프라미스 → 제너레이터
ㅇ 기타
- 디스크 쓰기 : 금지
- 코딩 난이도 : 다소 쉬움
3. 자바스크립트 역사
ㅇ 만든이 : 넷스케이프社의 Brenden Eich
ㅇ JavaScript를 최초로 웹브라우저에 도입 : 넷스케이프社의 네비게이터
- 1996년 당시에 사실상의 표준 : Netscape 3
4. 자바스크립트 표준 : ECMAScript
ㅇ ECMA의 TC-39 위원회에서, ECMA-262라는 규격명으로, 1997년부터 작업이 계속 진행중
- (ECMAScript : 자바스크립트 언어의 내장 코어 부분을 일컬음)
ㅇ ECMAScript는 주로 자바 스크립트 언어의 내장 코어 부분 만을 언급
- ECMAScript 3 : 과거 거의 모든 웹브라우저 엔진이 이를 지원 (1999년)
- ECMAScript 5 : (5 : 2009, 5.1 : 2011년)
- ECMAScript 6 : 현재의 웹브라우저에 적용되는 가장 보편적인 버전 (2015년6월)
. ES6 때 문법이 크게 바뀌어, 이후를 `모던 자바스크립트`라고 칭함
. 例) 문자열 템플릿, 화살표 함수, let,const 선언자, 이터레이터/제너레이터 등
5. 자바스크립트 엔진 명칭
ㅇ 자바스크립트 엔진
- ECMAScript 규격을 따르며 자바스크립트 언어를 컴파일,실행하는 주체
ㅇ 주요 웹브라우저의 자바스크립트 엔진 명칭
- 파이어폭스 : SpiderMonkey
- 인터넷 익스플로러, 엣지 : Chakra
- 사파리 : JavaScriptCore
- 크롬, Node.js : V8