자바스크립트

[Javascript] 자바스크립트란?

포포015 2021. 1. 17. 10:51

자바스크립트란 웹 브라우저에서 이벤트가 있다면 화면을 동적(변화가 있는)으로 제어해주는 언어이다

 (예를 들어 마우스 클릭이나 스크롤을 내리던지 버튼을 클릭하던지 하는 어떠한 행동)

 

그중 node.js 라는 프레임워크는 자바스크립트는 원래 웹페이지 화면단에서만 동적으로 변경해주는 스크립트언어 였다면 node.js는 서버단까지 제어 해줄수 있는 프레임워크 이다.

 

jquery는 예전부터 많이 사온 라이브러리로서

node.js와는 다르게 서버에서 > 뷰단으로 보낸 데이터를 출력해주는 용도로 사용하고있다

(보통 백엔드 개발자라면 , html css js를 하지만 js를 많이 공부안하고 백엔드 영역으로 공부를 많이 할텐데

 jquery는 예전부터 현재까지 뷰단에서 출력이나 , 이벤트 처리 부분으로 많이 사용 되고있다.)

 

-----------------------------------------------------------------------------------------------------------------------------------

* 자바스크립트의 활용 범위

 -Node.js와 같은 서버 기반의 자바스크립트 환경에서 동작할수 있는 각종 라이브러리까지 쏟아져 나와,

 이제는 자바스크립트 만으로 웹서버와 클라이언트인 웹 페이지 개발을 동시에 할수 있는 수준까지 됨.

 

 

1 자바스크립트 핵심 개념

- 자바스크립트의 거의 모든것은 객체이다. 

 (기본 데이터 타입인 boolean, number , string 특별한값인 null, undefined) 이를 제외한 나머지는 모두 객체

하지만 앞의 boolean, number, string은 객체'처럼' 다룰수도 있다.

 

1.1 함수

- 자바스크립트 에서는 함수도 객체로 취급한다.( 일반적인 객체보다 조금 더 많은 기능이 있는 객체라고 할수있다)

 

1.2 프로토타입

- 모든 객체는 숨겨진 링크인 프로토타입을가진다. 이 링크는 해당 객체를 생성한 생성자의 프로토타입 객체를 가리킨다

 

1.3 실행 컨텍스트와 클로저

- 자바스크립트는 자신만의 독특한 과정으로 실행 컨텍스트를 만들고 그안에서 실행이 이루어진다.

이 실행 컨텍스트는 자신만의 유효범위(scope)를 갖는데, 이과정에서 클로저를 구현할수 있다.

 

1.4 자바스크립트와 객체지향 프로그래밍

- 자바스크립트는 클래스를 지원하지않지만 객체지향 프로그래밍이 가능하다.

 프로토 타입 체인과 클로저로 객체지향 프로그래밍에서 제시하는 상속,캡슐화 정보은닉등의 개념을 소화할수 있다.

 

1.5 자바스크립트와 함수형 프로그래밍 

- 자바스크립트는 함수형 프로그래밍이 가능하다.

 함수형 프로그래밍은 높은 수준의 모듈화를 가능케하는 매우 효율적인 프로그래밍 방법이다.

 자바스크립트는 주요 특성인 일급객체로서 함수특성과 클로저를 활용하여 가능케한다.

(하지만 이때문에 가독성이 떨어질수도 있다)

 

1.6 자바스크립트의 단점

- 자바스크립트는 굉장히 유연한 언어이고 뛰어난 표현력을 가지고 있다.

하지만 이러한특성때문에 종종 디버깅에 어려움을 겪기도 한다.

또 중요한 논란중에 하나가 전역객체의 존재이다.

(최상위 레벨의 객체들은 모두 전역객체 안에 위치하는데 ,이름 충돌위험이 있다)