ReactJS를 작성할 때에 알아두면 좋은 ES6 문법들
block scope
기존의 함수에 의한 스코프처럼 { }
으로 감싼 내부에 별도의 스코프가 생성된다.
|
|
|
|
|
|
block scoped variables
let
은 기존의 var
를 대체하는 블락변수이고, const
는 그 중 한 번 선언 및 정의되고 나면 값을 변경할 수 없는 변수이다.
블락 스코프 내부에서 선언된 let
, const
는 해당 스코프 내에서만 존재하며, 이들에 대해서는 ‘TDZ’가 존재한다.
TDZ (temporal dead zone, 임시사각지대)
: 블락 스코프 내에서는 지역변수/상수에 대한 호이스팅이 이뤄지기는 하나, 선언된 위치 이전까지는 해당 변수/상수를 인식하지 못한다.
|
|
|
|
|
|
|
|
|
|
링크 : Object.freeze 및 deep freezing
변수별 스코프 종속성
variables \ scope | function | block | hoisting | TDZ |
---|---|---|---|---|
let | O | O | O | O |
const | O | O | O | O |
var | O | X | O | X |
function declaration | O | △ | O | X |
함수선언문의 경우 sloppy-mode 모드에서는 block-scope의 영향을 받지 않고, strict-mode에서는 block-scope의 영향을 받는다.
|
|
|
|
arrow function
순수 함수로서의 기능만을 담당하기 위해 간소화한 함수.=>
의 좌측엔 매개변수, 우측엔 return될 내용을 기입한다. 우측이 여러줄로 이루어져있다면 { }
로 묶을 수 있으며, 이 경우엔 명시적으로 return을 기술하지 않으면 undefined
가 반환된다.
|
|
|
|
rest parameter
- 함수 파라미터에 일정하지 않은 값들을 넘기고자 할 경우에 유용.
- arguments의 대체.
- 배열의 얕은복사 목적으로 활용 가능.
|
|
|
|
spread operator
문자열의 각 단어, 배열의 요소들이나 객체의 프로퍼티들(stage-2 proposal)을 해체하여 여러개의 값으로 반환해준다.
|
|
|
|
default parameter
파라미터에 값을 할당하지 않거나 빈 값인 상태로 함수를 호출할 경우, 해당 파라미터를 지정한 기본값으로 인식하도록 해줌.
각 파라미터는 내부에서 let과 동일하게 동작하며, 따라서 TDZ가 존재한다.
|
|
|
|
Enhanced Object Literal
computed property key
프로퍼티의 키값에 표현식을 지정할 수 있다.
|
|
|
|
property Shorthand
프로퍼티의 키와 값에 할당한 변수명이 동일한 경우, 키를 생략할 수 있다.
|
|
|
|
method Shorthand
메서드명 뒤의 : function
키워드를 생략할 수 있게 되었다.
|
|
Object.assign
(ES5)
Object.assign()
객체의 얕은복사를 수행한다.
|
|
|
|
template literals
여러줄 문자열, 보간(표현식 삽입) 등을 지원하는 새로운 형태의 문자열.
|
|
|
|
|
|
class
Java의 그것과 비슷하지만 private 메서드가 없다.
|
|
module - import / export
without ‘default’ export
|
|
with ‘default’ export
|
|