JS (Java Script)

JS(java script) 역사와 특징

GABOJOK 2023. 5. 23. 00:48

 

 

자바스크립트  역사

 

1995년에 탄생!! (동갑 ㅋㅋ)

넷스케이프 커뮤니케이션 에서 만들어짐. 원래 이름은 livescript  

이때 당시 java라는 언어의 인기가 많았었는데, 1도 관련이 없는데도 이름 바꿧다 라고 재밋게 기억 ㅋㅋㅋ

 

자바스크립트 왜 생김??

브라우저에 동작하기 위한 언어를 만들면서 생김. 

그래서 이걸 통해서 동적인 엑션들을 만들어 낼 수 있다. 

 

2005년도 ajax 가 등장함. 

95년도 만들어진 언어는 기술이 조금 부족했는데. 이게 나오면서 많은 사람들이 js를 사용하게됨

원래는 동작하려면 모든 것들이 새로고침을 해야함. 근데 이게 나오면서 바뀌는 부분만 새로고침을 할수 있게 됨

이로 인해 폭팔적인 ux  향상. user experience (사용자 경험)의 약자. 

 

2008년에 v8 엔진이 등장하면서 브라우저 속도가 겁나 빨라짐.

 

2009년에 node.js 등장함.

브라우저에서 동작하도록 생긴 js를 브라우저 뿐만 아니라 어디에서든지 사용 할 수 있도록 만들어 진게 바로 이것. 서버 개발이 활성화 됨

 

이로 인해 --> 프론트, 백, db를 모두 가능하게 하는게 js가 됨. 

 

 

 

자바스크립트 특징~!!

 

1. 객체지향 프로그래밍 지원하는 언어

  *객체지향 --> 순서대로가 아닌 어떠한 역할을 가지고 있는 객체라는 그룹으로 묶어서 그 그룹 단위로 프로그래밍을 수행하는거. 

이게 왜 중요한가??? 여러군데에서 재활용이 가능하다.  

 

  *절차지향 -->첫번째 일 처리 후 두번째 일 처리. 차례로 프로그램을 실행하는거

 

JS에서 객체를 만들 때는?

자바스크립트에서 객체를 만들 때는 **중괄호({})**를 사용하여 객체를 만들고, 각 속성을 **쉼표(,)**로 구분하여 추가합니다.

속성은 이름과 값을 가지며, 이름은 문자열로 작성하고, 값은 다양한 데이터 타입을 사용할 수 있습니다. 객체 내부의 함수를 **메소드(method)**라고 부르며, 속성의 값으로 함수를 추가할 수 있습니다. 객체를 만들어서 필요한 속성과 메소드를 추가하여 사용합니다.

 

 

2. 동적타이핑 언어이다.

자바스크립트에서는 변수를 지정할때에 var a = "abc" 이런 식으로, 변수가 어떤타입인지 그 타입을 지정하지 않는다

이 타입은 그럼 언제 결정?? 바로 런타임에 결정

 

런타임이란??  --->> 코드가 다 짜여진 상태에서 프로그램이 돌아가는 그 시점이 바로 런 타임이라고 한다. 

반대의 개념은 컴파일 시점

 

 

3. 함수형 프로그래밍 지원

자바스크립트는 함수를 사용해서 프로그래밍 할 수 있다.

함수를 일급 객체로 취급하고, 고차 함수를 지원합니다.

이를 통해 코드의 재사용성과 가독성을 높일 수 있습니다.

 

일급객체란??  --->  함수를 일반 값과 마찬가지로 변수에 할당하거나, 함수의 인자로 전달하거나, 함수의 반환값으로 사용할 수 있는 객체를 의미합니다.

고차 함수(higher-order function)란?? --->>  함수를 인자로 받거나, 함수를 반환하는 함수를 의미합니다.

 

(자세한건 담에)

 

4. 비동기 처리가 가능한 언어

비동기 처리는 작업을 순차적으로 기다리지 않고, 병렬로 처리할 수 있도록 하는 방식이에요. 지금은 이해하기 어려우니, 이후 과정을 통해 익히도록 합시다 😊

 

5. 클라이언트 측 및 서버 측 모두 사용 가능

자바스크립트는 클라이언트 측에서만 사용되는 것이 아니라, Node.js를 이용하여 서버 측에서도 사용됩니다.

이를 통해 웹 개발 전반에 걸쳐 자바스크립트를 활용할 수 있습니다.

 

 

 

 

 

'JS (Java Script)' 카테고리의 다른 글

JS 스코프 / 지역변수 / 화살표 함수  (0) 2023.05.24
JS 함수  (0) 2023.05.24
JS 연산자  (0) 2023.05.23
JS 형변환  (0) 2023.05.23
JS 변수, 데이터 타입  (0) 2023.05.23