@code.foreveryone님의 JS roadmap중 오늘은 Basic 파트에 대해서 정리해보겠습니다!! 이번 정리할 때 아예 기초를
아주 그냥 콱콱 머리 속에 박아둔다는 느낌으로 정리및 공부 예정입니다!
Basic 파트에서 공부할 내용은 다음과 같습니다.
1. ECMA script
2. JS versions
3. Static and dynamic Language (정적 타입 언어와 동적 타입 언어)
4. Get familiar about the places where JS in using.
@code.foreveryone님의 JS roadmap은 클릭띠!
Ⅰ. ECMAScript
ECMA란 녀석에 대해 이해하기 위해 1) ECMA 인터내셔널 2) ECMA-262 3) ECMAScript 에 대해 알아보고자 합니다.
1) ECMA 인터내셔널
ECMA 인터네셔널은 정보 통신에 대한 표준을 관리하는 비영리기구 입니다. ECMA는 대표적으로 CD롬 볼륨과 파일 구조, C#언어 규격 , JSON 포맷 처럼 일부 정보 통신 기술에 대한 표준을 관리하고 있습니다.
🌷국립국어원 포지션
2) ECMA-262
ECMA-262는 ECMA 인터내셔널에 의해 제정된 기술 규격의 이름으로 스크립트 언어에 대한 " 표준 "을 정의한 규칙
🌷표준어
그렇다면 여기서 *스크립트 언어란??
스크립트 언어는 독립된 시스템에서 작동하도록 특별히 설계된 프로그래밍 언어입니다. 스크립트 언어는 응용 프로그램과는 독립적이고 사용자가 직접 프로그램을 의도에 따라 동작시킬 수 있습니다.
# 사용자가 프로그램을 의도에 따라 제어할 수 있음.
# 스크립트 언어는 독립된 시스템을 위해 존재
3) ECMAScript
ECMAScript는 ECMA 인터내셔널에 의해 제정된 ECMA-262 기술 규격에 의해 정의된 범용 스크립트 언어입니다.
ECMA-262에서 정의된 하나의 사양(specification)을 의미하며 스크립트 언어가 준수해야 하는 규칙, 세부 사항 및 지침을 제공합니다.
🌷발음이나 맞춤법
JavaScript는 ECMAScript사양을 준수하는 범용 스크립팅 언어입니다. ECMAScript 문서를 통해 어떻게 스크립트 언어를 만들 수 있는지 알 수 있고, JavaScript 문서를 통해 어떻게 스크립트 언어를 쓸 수 있는지 알 수 있다.
🌷혹자는 JavaScript를 ECMAScript의 방언이라고 부름.
2022년 6월 22일, ECMA 인터내셔널은 ECMAScript 의 제 13판을 최종 승인 했습니다(ES13). 참고로 ECMAScript 6은 ECMA-262 표준의 제 6판으로 2015년 승인 판입니다(ES6). JavaScript 사양의 변경으로 이해하면 될 것 같습니다. 아래의 링크를 타고 가시면 ECMA Script 2022에 새롭게 표준이 된 제안을 정리해주신 블로그가 있으니 참고 하시면 될 것 같습니다.
언젠간 공식문서 정독공부도 해야 하는데 참 어렵네요 ㅠ
JavaScript 엔진에는 Google Chrome의 V8, Mozila Firefox의 SpiderMonkey, Microsoft Edge의 Chakra등이 있습니다. 이러한 각각의 JavaScript엔진들은 지원되는 ECMAScript가 다르기 때문에 수행 능력에 차이가 납니다. 그래서 브라우저가 얼마나 JavaScript를 잘 지원하느냐와 관련해서 JavaScript 호환성이라는 단어보다 ECMAScript 호환성이라는 단어를 더 사용합니다. ( 이 브라우저는 어떤 버전의 ECMAScript를 지원하나용??? )
Ⅲ . Static and dynamic Language (정적 타입 언어와 동적 타입 언어)
대표적인 정적 타입 언어는 (Java) , 동적 타입 언어는 (JavaScript, Python)입니다.
이 둘의 구분 기준은 코드의 상수, 변수, 함수 등에 대한 타입을 "언제" 확인하는지 입니다.
🅰️ 정적 타입 : Ada, C, C++, C#, JADE, Java, Fortran, Haskell, ML, Pascal, Scala
🅱️ 동적 타입 : Groovy, JavaScript, Lisp, Lua, Objective-C, PHP, Prolog, Python, Ruby, Smalltalk, Tel
간단하게 *정적타입 언어(statically typed)는 컴파일 시 변수의 ' 타입' 이 결정됩니다.
int num = 1;
반면에 *동적 타입 언어( dynamically typed)는 런타임시 변수의 타입이 결정되기 때문에 따로 타입 선언 없이 변수 선언이 가능합니다.
var num = 1;
정적타입은 컴파일 시 에러가 뜨기 때문에 빠르게 어떤 에러가 발생했는지 확인하고 수정할 수가 있습니다. 또한 타입이 명시적으로 지정되어 있어서 코드의 가독성이 좋아서 다수의 협업이나 프로젝트의 장기 개발 및 유지보수에 유리합니다.
하지만 동적타입 언어는 런타임 시 확인 할 수 있기 때문에 이러한 단점들을 해소하기 위해 TypeScript와 Flow같은 툴이 나왔다고 합니다. 정적타입 언어들은 타입 선언과 같이 지켜야 할 규칙들이 많지만 동적타입은 상대적으로 규칙이 적어서 코드가 짧고 Learning-Curve가 낮다는 장점이 있습니다.
ⅰ. Get familiar about the places where JS in using.
JavaScript는 DOM(Document Object Model) API를 통해 HTML과 CSS를 동적으로 수정, 사용자 인터페이스를 업데이트하는 일에 가장 많이 사용됩니다.
'Programming > Java Script' 카테고리의 다른 글
[🍭JS 기초] 옵셔널 체이닝 " ?. " (Q) (0) | 2023.02.04 |
---|---|
[JS 기초문법] roadmap 따라가는 여기는" Variables " 정리 파트!!💪 (0) | 2022.12.21 |
왜 JavaScript에서 ES6(ECMA2015) 가 중심일까? (0) | 2022.12.19 |
JS 기초 문법 순서 - Study roadmap (0) | 2022.12.19 |
[Coursera x K-mooc] JS2 : MD-02 [ jQuery - animation효과, Easing Plugin ] (0) | 2022.12.04 |