본문 바로가기
공부 정리/You Don't Know Js

[YDKJ] Get Started - Chapter 1 - 1

by 경적필패. 2023. 4. 20.
반응형

요약

About This Book

  • 이번 Get Started는  더 깊이 있는 JS학습을 위해 준비하는 과정
  • JS자체가 목표가 아니라 journey이다. => 계속해서 새로운 것을 배울 수 있다는 얘기인 듯..?

 

What's with that name?

  • Java와 Javascript의 이름이 비슷한 이유는 마케팅의 산물. JS가 나올 때 자바 프로그래머를 겨냥했기 때문이다
  • 자바를 소유하고 있는 Oracle은 Javascript에 대한 상표도 소유하고 있음(효력은 없지만..) => 따라서 Javascript보다는 JS라고 말하는 것을 권장!
  • Oracle이 소유하고 있는 상표와 거리를 두기 위해 공식적인 이름은 ECMAScript임 => 따라서 JS or ES20XX라 부르자.

 

Language Specification

  • TS39는 JS를 관리하는 기술위원회로, 0~4단계의 과정을 거쳐 언어(JS)를 개정함
  • 이처럼 표준이 존재하기 때문에 우리는 하나의 JS로 개발가능 => V8 엔진이나 스파이더몽키 엔진이나 같은 JS기능을 수행한다.

 

The Web Rules EveryThing about(web)

  • JS의 명세서와 브라우저 안에서 JS는 동일하지만 고려해줘야 할 것이 있다. => JS를 사용하며 20년 넘게 웹을 만들어왔기 때문에 JS를 변경할 때, 기존의 웹을 해치지 않아야 함. => 예시로 JS의 contains는 옛날의 JS프레임워크 명령어와 겹치기 때문에 includes로 메서드명을 대신하고 있다.

 

Not All JS

console.log("hi")
  • 이 코드 자체는 JS 명세에 없다.
  • JS의 환경이 제공하는 API임. => 이 마저도 JS의 규칙을 따라야 함.
  • 사람들이 말하는 크로스 브라우저 이슈는 JS자체 문제가 아니라 환경 문제.

 

It's not Always JS

  • 개발자 도구는 개발자의 생산성을 높이는 도구이지, JS 동작을 엄격하게 반영하는 것은 아님

 

Many Faces

  • 프로그래밍에는 코드 구성방식과 관련된 패러다임이 존재함.
  • 언어에 따라 특정 패러다임에 집중됨 ex) c는 절차지향, c++/java는 객체지향, Haskell은 함수형
  • JS는 다중 패러다임 언어임.

 

Backwards & Forwards

  • JS는 옛날버전과 호환을 중요하게 생각함. 10년 전에 작성된 JS도 현재 잘 동작함.
  • 대조적으로 HTML/CSS는 10년 전에 작성된 HTML/CSS가 현재는 정상적으로 작동하지 않거나, 의도치 않은 작동이 발생 가능. => 반대로 2019년에 추가된 HTML기능을 2010년 브라우저에 사용해도 웹은 망가지지 않음.(무시)

 

 

느낀 점

JS의 배경에 대해 좀 더 알게 되었다.

JS는 과거와의 호환을 중요시 한다는 것을 강조한 느낌.

자바에서는 문자열 포함 체크 할 때 contains로 쓰고, JS에서는 includes를 쓰기 때문에  이를 통일하면 좋겠다고 생각한 적이 있는데 JS에 이러한 사정이 있음을 알게 됨.

 

 

반응형

댓글