자바스크립트는 서버와 클라이언트 응용프로그램을 위해서 만들어진, 플랫폼에 영향을 받지 않는 객체 기반형 스크립트 언어이면서 복잡한 무언가 즉, 주기적으로 내용이 갱신되는 기능이나 능동적인 지도, 변화하는 2D&3D 그래픽, 동영상 등 웹페이지에 적용할 수 있게 하는 스크립트 혹은 프로그래밍 언어
사용자들을 위해 상호작용하는 애플리케이션을 만들 수 있게하며 동적으로 컨텐츠를 바꾸고, 멀티미디어를 다루고, 움직이는 이미지 등 많은 일들을 하면서다양한 컴퓨터가 연결되어 있는 네트워크, 다른 운영체제 속에서도 실행이 가능하다
🔥
JavaScript is cross-platform, object-based scripting language for client and server applications
자바스크립트를 사용하는 이유
웹문서를 좀 더 동적으로 표현하기 위해서 그리고 웹 브라우저에서 실행되니 서버의 과부하를 막을 수 있으며 속도가 빠르다는 장점이 있기 때문에
역사
자바스크립트는 1995년 Netscape의 Brendan Eich (브렌던 아이크)에 의해 만들어졌다. Mocha라는 이름으로 개발되었으나 이후 LiveScript , 최종적으로 JavaScript라는 이름으로 변경되었다
특징
인터프리터 언어
통역사라는 뜻으로 코드를 한 줄 한 줄 읽어가며 바로 처리하는 프로그램 언어
자바와 같이 컴파일이 필요한 다른 프로그래밍 언어에 비해 중간 단계인 컴파일, 링크 과정이 필요가 없기 때문에 시간이 적게 소요되며 코드를 한 번에 한 줄씩 읽어 들이면서 바로 실행이 가능
여기서 컴파일이란 우리가 작성한 코드를 컴퓨터가 이해할 수 있게 변환해주는 과정
클라이언트 스크립트이기 때문에 서버 연결에 드는 시간을 절약할 수 있으므로 프로그램 실행 속도를 높인다
스크립트 언어
간편하고 쉽다
웹 브라우저에서 동작하는 스크립트 언어로 운영체제의 제한을 받지 않는다
단순함
쉽게 이해할 수 있는 구조
동적 (다이내믹) 컨텐츠를 개발하는 비용을 절약
자바나 파이썬처럼 별도의 설치가 필요 없다
객체 기반 언어
내장 객체를 지원한다
prototype을 사용한 상속을 하는 객체 기반 언어
인터페이스
웹 페이지에 다양한 인터페이스를 제공하므로 사용자 상호작용이 향상
단점
보안성
웹 상에서 바로 코드를 볼 수 있기 때문에 문제가 생길 수 있다
데이터 보안을 손상시킬 수 있는 악성 코드를 웹사이트에 삽입하는 것이 매우 쉽다
불변성
언어 차원에서 immutable함을 제공해주지 않는다
여기서 불변함이란 데이터의 원본이 훼손되는 것을 막는 것
함수형 프로그래밍을 지원하는 것이 장점이지만 함수형과 땔래야 땔 수 없는 관계인 불변성을 지원하지 않는다는 것이 모순적
const 라는 변수는 값이 불변하다고 생각할 수 있는데, const라는 값에 대한 참조 (가르키는 것)가 한 번 변수가 할당되고 나면 변할 수 없음을 의미하는 것이지 const 변수가 참조하고 있는 값이 불변하다는 것을 의미하지는 않는다