이번주는 알고리즘을 통해 문법의 기초를 다지고 다음주 주특기 수업이 본격적으로 시작하기 전 언어와 친해지는 과정이었다.
문제는 프로그래머스로 진행했고 난이도별로 1번부터 28번까지 풀 수 있었지만, 더 풀 수 있는 사람은 54번까지도 풀 수 있었다.
먼저 5일차에 모의고사를 진행 후 7일차엔 시험을 진행했다.
5일차 모의고사엔 문제는 풀었는데 원하는 정답양식을 맞추지 못해서 되게 아쉬움도 많이 남고 과연 앞으로 잘 할 수 있을까 하는 나 자신을 향한 의심이 생겼다.
그리고 7일차 시험을 대비해서 이미 28번까지 풀었던 문제를 3회독 그리고 문제를 보고 입으로도 풀 수 있을정도로 익숙해졌다.
그 문제가 그대로 나오는건 아니었지만, 그래도 기초문법의 쓰임을 내 것으로 만들면 편하게 접근할 수 있을 것 같았기때문에..
자바스크립트는 1990년대 Netscape 회사의 Brendan Eich 라는 사람에 의해 최초 개발됐다. 자바스크립트가 잘 되자, MS에서 Jscript라는 언어를 개발해 IE에 탑재하였는데, 이 두 스크립트가 너무 제가각이라, 표준이 필요했다.
표준을 위해 자바스크립트를 ECMA(European Computer Manufactures Association)라는 정보와 통신시스템의 비영리 표준 기구에 제출하였고 표준에 대한 작업을 ECMA-262란 이름으로 1996년 11월에 시작해 1997년 6월에 채택 되었고 ES란 ECMA Script의 약자다.
- ES3 (1999)
우리가 흔히 말하는 자바스크립트.
- ES5 (2009)
배열에 forEach, map, filter, reduce, some, every와 같은 메소드 지원
Object에 대한 getter / setter 지원
자바스크립트 strict 모드 지원 (더 깐깐한? 문법 검사를 한다.)
JSON 지원 ( 과거에는 XML을 사용하다가, json이 뜨면서 지원하게 됨 )
- ES 2015 (ES 6)
- let, const 키워드 추가
기존의 변수는 함수 scope를 가진 var 키워드를 이용하여 선언하였다. 때문에 block scope 를 가진 let과 const 키워드를 추가하였다. 기존에는 상수형 키워드가 없어 CONST_TEST와 같이 대문자로 상수임을 표시했다면, ES 6부터 const 키워드가 추가되어 값의 변경을 통제한다.- arrow 문법 지원
arror 문법은 두 가지의 장점을 제공한다. 첫 번째는 익숙하면 편하고 간결해진 코드를 작성할 수 있다. 두 번째는 this 를 바인딩하지 않는다. (다르게 말하면, this는 해당 scope의 this와 같다.)
두 번째 this를 바인딩 하지 않는다는 코드로 설명하겠다. 우선 아래 코드를 보자. test 객체에 name변수와 fn이라는 메소드를 두었다. 아래 test.fun으로 메소드를 실행한다.- iterator / generator 추가
- module import / export 추가
- Promise 도입
ES6 에서는 ES5 이하 명세에서 문제가 되었던 부분들이 해결되었고 많은 기능들이 추가됐고 이는 가독성과 유지보수성 향상으로 이어졌다.