Javascript
1. Javascript 기능
1. 웹 브라우저 제어
- window 인터페이스 제어
- DOM 제어
- 서버와 비동기통신 제어(XMLHttpRequest)
- 이벤트 처리
2. 웹 서버 제어
- Node.js : 자바스크립트 실행 환경
2. Javascript 특징
1. 인터프리터 언어이다.
인터프리터 언어 : 소스코드를 한 줄씩 기계어로 번역해서 실행하는 프로그래밍 언어 ( Ruby, Python 등 ..)
- 장점 : 프로그램을 바로 실행하고 동작을 확인 할 수 있다.
- 단점 : 프로그램 실행시 컴파일 언어보다 느리다.
=> JIT 컴파일러로 실행 속도가 향상 되어짐!!!
컴파일 언어 : 기계어로 번역 후 실행하는 프로그래밍 언어 (C, C++, Java 등..)
- 장점 : 실행 속도가 빠르다.
- 단점 : 컴파일 속도가 느리다.
2. 프로토타입기반 객체 지향 언어이다.
- 프로토타입을 상속하는 프로토 타입 기반 객체 지향 언어
- 객체 생성 후에도 프로퍼티, 메서드를 동적으로 추가, 삭제 가능
- 절차 지향 언어 : 순서대로 데이터 처리
- 객체 지향 언어 : 객체 단위로 데이터 처리
- 함수형 언어 : 함수를 조합하여 구현
#### 3. 동적 타입 언어이다. 1. 변수 타입이 없다. 2. 변수 할당 과정에서 데이터 타입이 결정된다. - 자바스크립트에서 변수 타입은 동적으로 바뀔 수 있다.
4. 일급객체 함수이다.
- 자바스크립트 함수는 객체이다.
- 함수에 다른 함수를 인수로 넘길 수 있다 -> 고차 함수 구현 가능
5. 함수가 클로져를 정의한다.
- 함수가 입력될 때! SCOPE(범위)가 지정된다.