본문 바로가기
패스트캠퍼스/수업내용정리

Javascript 1일차 -3

by sunnykim91 2019. 4. 29.

1. 자바스크립트의 탄생

 

자바스크립트는 1996녀 3월 넷스케이프 커뮤니케이션즈의 웹 브라우저인

netscape navigator 2에 탑재 되었고, Mocha로 명명되었다. 

9월 LiveScript로 이름이 변경되었고, 12월 javascript로 최종 명명되었다.

 

넷스케이프 점유율이 당시 90% 였는데, MS사에서 윈도우를 팔면서 안에 익스플로러를 끼워팔기 함.

파생버전인 JScript가 출시되어 자바스크립트가 위기를맞음. 이에따른 크로스브라우징 이슈가 발생

 

 

2. 자바스크립트의 파편화와 표준화

이후 생길 브라우저사들마다 자바스크립트 코드를 새로 다 다시 짤 수가 없어서

자바스크립트를 표준화해서 브라우저들은 이걸 따르자. 라는 것을 만듬.

1997년 7월, ECMA-262라 불리는 표준화된 자바스크립트 초판(ECMAScript 1)의 명세(specification)가 완성되었고 상표권 문제로 자바스크립트는 ECMAScript로 명명되었다.

 

ECMASCript에 우리가 알고 있는 모든것이 다 들어가있지는 않다.

// IE 9 이전 버전은 표준인 addEventListener 메소드를 지원하지 않는다.
if (el.addEventListener) {
  el.addEventListener('click', modifyText, false);
} else if (el.attachEvent)  {
  el.attachEvent('onclick', modifyText);
}

위에 코드에서보면 브라우저 버전에 따라서 지원하는 메소드들이 다 다르다.

 

 

1,2는 거의 비슷함

ES4가 없음. 4버전을 폐지, 이후 10년간 버전업이 없었음.

ES5에서 스티브잡스가 사파리에서 플래시를 지원안해버림 -> 보안상의 이슈가 많아서 당시엔 욕을 많이 먹었지만, 지금은 플래시 지원을 거의하지 않게되는 시초가 됬음.

ES6에 기능 대폭추가( ES4에서 추가할려고 시도했던것들이 많음) *우리가 배우는 자바스크립트의 표준안이라고 보면됨

 

3. 자바스크립트 성장의 역사

초창기엔 웹페이지 보조적기능을 수행하기 위해 한정적 용도로 사용

1999년, 자바스크립트를 이용해서 비동기적(Asynchronous)으로 서버와 브라우저가 데이터를 교환할 수 있는 통신 기능인 Ajax(Asynchronous JavaScript and XML)가 XMLHttpRequest이라는 이름으로 등장했다.

이에 대표적인 서비스가 Google Maps 이다. 웹 애플리케이션 개발 프로그래밍 언어로서 자바스크립트의 가능성을 확인하는 계기를 마련한 서비스이기도하다.

 

 

4. JavaScript와 ECMAScript, 자바스크립의 특징

ECMAScript는 자바스크립트의 표준 명세인 ECMA-262를 말하며 프로그래밍 언어의 타입, 값, 객체와 프로퍼티, 함수, 빌트인 객체 등 핵심 문법(core syntax)을 규정한다. 라고 되어있다. 

 

ES(코어 자바스크립트, ECMAScipt)  

 

자바스크립트는 일반적으로 프로그래밍 언어로서 기본 뼈대(core)를 이루는 ECMAScript와 브라우저가 별도 지원하는 쿨라이언트 사이드 Web API 즉 DOM, BOM, Canvas, XMLHttpRequest, Fetch, requestAnimationFrame, SVG, Web Storage, Web Component, Web worker 등을 아우르는 개념

 

Web API란?

ES vs javascript차이

 

자바스크립트는 다양한 프로그래밍 방식을 지원하는 멀티 패러다임 프로그래밍 언어

(명령형+함수형+프로토타입 기반 객체지향 프로그래밍)

 

명령형(절차형)  - 한줄한줄 해석해나가는 것.

객체 지향 - 클래스로 죄다 쪼개놓고 클래스가 생성하는 객체라는 것들이 서로 상호작용하면서 실행하는 방식

 

반응형

'패스트캠퍼스 > 수업내용정리' 카테고리의 다른 글

2019-05-07 연산자-1)  (0) 2019.05.07
수업2일차 -2  (0) 2019.05.01
수업 2일차 - 1  (0) 2019.05.01
JavaScript - 1-2  (0) 2019.04.29
JavaScript - 1-1  (0) 2019.04.29