JavaScript(자바스크립트)란 무엇인가?
1. JavaScript는 스크립트 언어이다.
JavaScript는 웹을 위한 인터프리터 언어이자 스크립트 언어이다.
JavaScript는 객체지향적 언어이다.
JavaScript로 작성된 프로그램을 스크립트라 하며, 컴파일은 필요하지 않다.
HTML 문서 내에 기술되고 HTML 문서와 함께 수행된다.
JavaScript는 웹 서버가 아닌 클라이언트 컴퓨터에 설치된 브라우저에서 실행되기 때문에 클라이언트 스크립트라 한다.
2. JavaScript의 역할
JavaScript는 웹 페이지에 기능을 더해 HTML 웹 페이지를 동적으로 만드는 것이다.
· HTML 페이지 변경 및 HTML 엘리먼트와 콘텐츠의 추가나 제거
· CSS 및 HTML 엘리먼트 스타일 변경
· 마우스 & 키보드 이벤트에 대한 스크립트 실행
· 웹 브라우저 제어, 쿠키 등의 설정과 조회
· AJAX 기술을 이용한 웹 서버와의 통신
· 사용자와의 상호작용 및 폼의 유효성 검증
3. JavaScript의 장점
· 컴파일 과정이 없기 때문에 다른 언어에 비해 빠른 시간안에 작성 할 수 있다.
· 단순한 구조로 초보 개발자도 쉽게 배우고 이해할 수 있다.
· 웹에 특화된 기술로 운영체제나 플랫폼에 상관없이 잘 작동되며, 확장성도 높다.
4. JavaScript의 단점
· 내부에서 제공되는 기능이 제한적이다.
· HTML 소스 코드와 함께 소스코드가 외부로 공개되어 보안에 취약하다.
5. JavaScript는 웹 개발자를 위한 강력한 언어이다.
6. JavaScript의 특징
· JavaScript는 변수를 함수 단위로 관리한다.
- 다른 프로그래밍 언어들은 중괄호를 사용하여 변수의 영역을 결정하는게 일반적이나 JavaScript는 함수를 단위로 해당 함수가 사용하는 변수를 관리한다.
· 실행시 변수 검색은 렉시컬 영역 기준으로 한다.
- 렉시컬 영역(scope)이란 함수가 선언된 위치에 따라 정의되는 영역이다.
· 실행시의 변수 검색은 변수 스코프 체인을 이용한다.
- var가 없는 변수가 정의되는 것은 파싱 단계가 아닌 런타임 단계 이다. 즉 함수 내부에서 변수를 정의하더라도 var 없이 변수를 정의하면 런타임에 전역 스코프에 동적으로 변수가 정의된다.
때문에 특별한 목적이 아니라면 변수를 선언할 때는 var를 명시적으로 사용해 변수를 참조할 수 있는 스코프를 명확하게 정의하는 것이 좋다.
· 변수 스코프의 실체는 객체이다.
- 변수 스코프 객체에는 몇 가지 종류의 변수가 추가된다.
함수를 호출할 때 사용한 인자(arhument), 함수를 정의할 때 사용한 매개변수(parameter) 이 두 가지가 구분되어 추가 되며, 함수 파싱을 통해 찾게 되는 var 변수와 중첩된 내부의 함수 변수가 변수 스코프 객체에 추가된다.
- 변수 스코프 객체는 해당 함수의 지역 변수를 관리하는 객체이며, 파싱 단계와 실행 단계가 분리되어 있고, 함수 단위의 렉시컬한 변수 스코프가 존재한다는 것에 주의해야 한다.
(여러 홈페이지들을 방문하여 읽어보고 공부하며 따로 정리한 글입니다.)
'Development > JavaScript' 카테고리의 다른 글
[JavaScript] 화면 리사이즈 시 높이 구하기 (1) | 2018.12.14 |
---|---|
[JavaScript] Random 함수 (0) | 2018.10.29 |
[JavaScript] 시간지연 함수 (0) | 2018.10.29 |
[JavaScript] 메모라이제이션(Memorization) (0) | 2018.10.29 |
[JavaScript] 문자를 유니코드로 변환하는 함수 (0) | 2018.10.29 |