Spread문법 : ...arr 과 같이 사용, 객체, 배열을 풀어서 각각의 요소로 넣을 떄 사용
Rest문법 : 파라미터에 전달인자를 배열형태로 받아 사용할 수 있음, 파라미터 개수가 가변적일 때 유용
spread문법은 배열의 합치기, 복사, 객체 등에 사용할 수 있음
구조 분해
[a, b, ...rest] = [1, 2, 3, 4, 5] // a=1,b=2,rest=[3,4,5];
{a, b, ...rest} = {a: 1, b: 2, c: 3, d: 4} // a=1, b=2, rest={c:3,d:4}
.reduce(function(accmulator, currentValue){
return accmulator + currentValue
},초기값)
expect(테스트하는값).기대하는조건
mocha, chai framework 사용
to.be.[boolean]
to.equal()
to.deep.equal() : 배열이나 객체의 속성이 같은지 확인, [] === [] false인 이유와 같은 이유로 deep 사용
Date().getFullYear()
.repeat()
Object.assign() : 얕은 복사, 깊은 복사 주의!, 객체{객체{}}가 있을 경우, 내부에 있는 객체는 레퍼런스가 복사되는 것
arguments 객체는 함수에 전달된 인수에 해당하는 Array 형태의 객체입니다.
arguments는 모든 함수의 실행 시 자동으로 생성되는 객체이다.
arguments는 배열 형태이지만, Array의 forEach, map과 같은 내장 메소드를 사용할 수는 없다
이러한 불편함을 이유로, ES6에서는 rest parameter를 사용할 수 있게 되었다
Array.from 유사 배열 객체나 반복 가능한 객체를 얕게 복사해 새로운 Array를 만든다
유사 배열 객체란, length 속성과 인덱싱 요소를 가진 객체
Array.from('foo') // ['f','o','o']
함수 선언식은 호이스팅이 된다. 함수 표현식은 호이스팅이 되지 않음으로 선언 시기에 주의
Strict mode
'use strict'를 스크립트 최상단에 작성 or 함수 본문의 맨앞
즉시 실행 함수 표현식 IIFE (Immediately-invoked function expressions)
함수 선언문은 즉시 호출할 수 없으므로, 함수 표현식으로 인식하게 만들면, 즉시 호출이 가능하다
(function(){
함수를 괄호로 둘러싸기
})();
(function(){
전체를 괄호로 둘러싸기
}());
+function(){
덧셈 연산자 붙이기
}();
!function(){
NOT연산자 붙이기
}();
변수 호이스팅과 TDZ