본문 바로가기
Study/JavaScript

You don't know JS (1.1~1.4)

by dailycoding777 2025. 1. 16.

오늘은 첫시간이라  챕터는 1.1~1.4까지 하기로 했다.

1.1 책에 대하여

1.2자바스크립트 이름의 유래

1.3 명세서

1.4 JS의 다양한 얼굴

 

 

1.1은 생략하고 1.2부터 시작한다.

 

1.1 JS랑 JAVA랑 연관이 있나요?

일단 javascript의 어원부터 보면 좋을 거 같다.

java + script인데 각각 이런 내용이다.

java : oracle의 java가 당시에 유행이어서 어그로성으로 지었다(사실 java랑 상관 없음)

script : 넷스케이프에서 웹사이트의 생동감 있는 느낌을 표현하기 위해 이름을 바꿨다.

이 두가지를 더해서 javascript가 된 것이다.

간단히 표로 보겠다.

 

1995 Mocha 넷스케이프라는 회사의 브랜던 아이크가 10일만에 만듦
1995년 후반 LiveScript 생동력 있는 스크립트 강조 ,웹페이지에 동적인 기능을 추가
1995년 12월 JavaScript 인기있는 자바의 유행의 이름을 쓴 것
1996년 표준화의 시작 넷스케이프가 ECMA 인터내셔널에 제출 , ECMAScript 라는 정의 됨

 

 

1.2JS의 이름의 유래(그렇지만 자바와 크게 다르지 않다.)

 

두 언어 모두 C언어(혹은 C++)와 유사한 문법을 기대하는 개발자 대상으로 만들어졌다.

  • 시작과 끝을 여는 중괄호 {
  • 닫는 중괄호 }
  • 문이 끌날 때 세미콜론 ;

(JS 이름에 '자바'가 들어가서 '자바'를 갖고 있는 Oracle이 이름 소유권을 갖고 있다.)

 

1.3 명세서 -> 웹의 역사

ECMA에서 누가 영향력을 갖냐라는 내용이었는데 엄청 중요하지 않다 생각해서 생략한다.

대신에 웹의 역사를 가져왔다.

 

1993: 모자이크 브라우저
1994: 넷스케이프사 -> 넷스케이프 내비게이터
1995: 마이크로소프트 -> 인터넷 익스플로러(IE)
1995: 자바스크립트 -> 넷스케이프 내비게이터

1996: 마이크로소프트사 -> jscript 출시  (javascript 아님) , 96년 말 넷스케이프껄로 표준화 시작
1997: ecmascript1 (ES1) (jscript, js가 점점 비슷해짐)
1998: ecmascript2
1999: ecmascript3 (이때부터 익스플로러 js 완벽호환)

2000: ecmascript4 (ES4) (expolore 점유율이 80프로를 넘었는데,  네비게이터 기준으로 발표하니 MS가 화남)
2009: ecmascript5  (크롬,파이어폭스 , 사파리 , 익스플로러 등 화해하고 표준을 잡음)
2015: ecmascript6    
2016: ecmascript7  (ES2016)

원래는 넷스케이프가 압도적인 점유율을 갖고 있었는데 유료인 점이 소비자들에게 거부감을 갖게 했다고 한다.

 

1.3.3 모든 코드가 JS인 것은 아닙니다.

 

 

우리가 사용하는 개발자도구,REPL까지 과연 JS로 다 코딩 되어 있을까?

아니다.

C , C++로도 되어 있다.

이 책에서 말한 내용은 그거다. JS를 쓸 수 있는 환경 모두가 JS로 이루어진 것이 아니라고.

따라서 위 도구들은 JS의 모든 기능을 전부 지원하는 것이 아니다.

JS 규정을 엄격하게 준수하지 않으니 결과가 예상과 다를 수 있다는 것이다.

 

1.4 JS의 다양한 얼굴(페러다임)

페러다임이란? - 코드를 어떻게 구조화할지에 대한 접근방식과 사고 방식을 의미

 

지피티한테 페러다임에 대해 정의한 표를 요청했다.

  객체지향 절차적 함수형
핵심 특징 캡슐화, 상속, 다형성. 함수와 프로시저에 집중; 모듈화 접근. 순수 함수, 불변성, 부작용 없음.
코드 구조 코드가 클래스와 객체로 구성됨. 코드가 함수 또는 프로시저로 구성됨. 코드가 순수 함수와 고차 함수로 구성됨.
상태 관리 상태는 객체에 연결되고, 시간에 따라 변경될 수 있음. 상태는 전역 또는 함수 간에 전달됨. 상태는 불변이며 함수형 구조로 관리됨.
사용 예시 언어 Java, Python, C++, C# C, Pascal, Fortran Haskell, Scala, JavaScript (ES6+), Python (라이브러리 사용)
 
여기 보면 JS는 함수형이라고 나와있다.
그런데 과연 진짜 함수형일까?
 
사실 대부분의 언어는 다중 페러다임을 지원한다. (페러다임 두개 이상 지원)
 
JS는 여기 나온 모든 것을 사용할 수 있고 심지어 전체가 아니라 한줄한줄씩 적용이 가능하다.
 
 

'Study > JavaScript' 카테고리의 다른 글

You don't know JS yet(1.5~1.8)  (0) 2025.01.23