2021-01-08(Fri)

항목

내용

학습 날짜

2021-01-08(금)

학습 시간

09:00~23:00

학습 범위 및 주제

javascript ES6

학습 목표

모던 자바스크립트 튜토리얼의 Part 1을 모두 훑는다.

동료 학습 방법

eunhkim, jujeong, sanam, yohlee 님과 팀 미팅을 진행하였고, 디스코드를 켜놓고 학습하였다.

상세 학습 내용

Modern JavaScript 튜토리얼을 추가로 학습진행하였다.

TCP School로만 학습을 진행한 팀원들이 EC5와 EC6의 차이를 학습하는데 도움을 주기 위해 아래처럼 문서를 만들고 있었으나, 모든 팀원들이 Modern JavaScript 튜토리얼로 학습을 진행하기로 해서 작성을 멈췄다.

EC5 vs EC6

TCP School 에서 학습한 EC5와 모던javascript튜토리얼에서 학습한 EC6의 차이점을 정리합니다.

들어가며

Backbone.js를 학습하기 위해 팀 차원에서 javascript를 빠르게 훑었습니다. 각자 TCP School을 하루만에 훑었으나 TCP School에서 다루는 자바스크립트는 오래된 버전, EC5였기에 모던 JavaScript를 학습할 필요가 생겼습니다.

이에 모던 JavaScript 튜토리얼을 참고하여 EC6의 특징을 학습한 내용 중 EC5와의 차이점을 정리했습니다~!

변수

변수선언자로 var 외에도 letconst가 쓰입니다. 새로 등장한 letconst은 각각 모던한 자바스크립트의 변수와 모던한 자바스크립트에서의 상수를 선언하기 위한 키워드라고 생각하면 됩니다.

constvar는 이름에서부터 다른 점이 명확히 느껴집니다. 전자는 키워드로 정의한 값을 변경시킬 수 없고, 후자는 키워드로 정의한 값을 변경시킬 수 있습니다.

그럼 letvar의 차이점은 무엇일까요? 모던 JavaScript 튜토리얼에 자세하게 나와있습니다.

1) 스코프의 유무

let과 달리 var는 블록 스코프가 없고, 함수 스코프이거나 전역 스코프입니다. 블록 기준으로 스코프가 생기지 않기 때문에 블록 밖에서 접근 가능합니다.

2) 스코프 내 재선언 가능 여부

let은 한 스코프내에 같은 이름의 변수를 두번 선언하면 오류가 발생합니다. 반면 var은 같은 이름의 변수를 몇번이고 선언할 수 있습니다. 이 경우 이미 선언된 변수는 무시됩니다.

결과적으로 var의 기능에서 유지보수 측면에서 혼란이 생길 요소를 제거한 것이 let인 셈이니 var 대신 letconst를 씁시다.

문자열

역 따옴표로 변수나 표현식을 감싼 후 ${…}안에 넣어주면, 아래와 같이 원하는 변수나 표현식을 문자열 중간에 손쉽게 넣을 수 있습니다.

let name = "iwoo";

alert( 'Hello, ${name}! '); // Hello, iwoo!

자료형

아래 자료형이 추가되었습니다.

  • bigInt 길이 제약 없이 정수를 나타낼 수 있습니다.

  • null 자료형 null만을 위한 독립자료형이 있으며, 알 수 없는 값을 나타냅니다. 그런데 typeof null의 결과는 "object"입니다. 왜냐! null은 별도의 고유한 자료형을 가지는 특수 값으로 객체가 아니지만, 하위 호환성을 유지하기 위해 이런 오류를 수정하지 않고 남겨둔 상황입니다. 언어 자체의 오류이므로 null이 객체가 아님에 유의하시기 바랍니다.

  • 심볼(symbol)형 객체의 고유 식별자를 만들 때 사용합니다.

typeof는 피연산자가 함수면 "function"을 반환합니다. 그러므로 typeof alert"function"을 출력해줍니다. 그런데 '함수’형은 따로 없습니다. 함수는 객체형에 속합니다. 이런 동작 방식이 형식적으론 잘못되긴 했지만, 아주 오래전에 만들어진 규칙이었기 때문에 하위 호완성 유지를 위해 남겨진 상태입니다. 한편, 실무에선 이런 특징이 매우 유용하게 사용되기도 합니다.

학습 내용에 대한 개인적인 총평

모던 자바스크립트 튜토리얼에 세세한 팁과 더불어 깊은 내용이 있어서 크게 도움됩니다. 무료로 이런 컨텐츠를 누리는게 감동스러워서 조금이나마 갚고자 컨트리뷰터로 신청했습니다.

한편 팀원들과 자바스크립트 학습 말고도 역할분배와 설계 등에 대한 얘기를 나눴는데, 다양한 의견을 주고 받았습니다. 다음에 정리해봐야겠네요.

다음 학습 계획

  • 모던 자바스크립트 튜토리얼 적어도 Part 2 다 훑기

Last updated