ES6 (5) 썸네일형 리스트형 generator generator- 함수이지만 일반 함수와는 다름- function* 키워드로 시작함- new 연산자를 사용할 수 없음- return 구문은 한번만 실행되지만 yield 구문은 여러번 실행됨- 호출해도 바로 실행되지 않고 멈춰진 제너레이터 객체를 리턴함- generator 객체의 .next() 메소드를 호출할 때마다 다음번 yield구문에 닿을 때 까지 실행- 첫번째 next()메소드에 인자를 넣으면 이 값은 무시됨- yield* 키워드를 사용하면 해당 yield가 실행될때 iterable Object를 순회함 EX 1⇒ sports 함수를 호출해도 함수 내부 블록이 실행되지 않으며 제네레이터 객체를 리턴한다 EX 2⇒ next() 메소드를 호출할 때 실행된다 EX 3⇒ next() 메소드의 첫번째 인자.. for of for of- 컬렉션 객체가 [Symbol.iterator] 속성을 가지고 있어야만 함 (직접 명시 가능)- for in 루프 구문은 객체들의 속성을 순회하고 for of 루프 구문은 data를 순회함- break, continue, return 사용 가능- String, Array, TypedArray, Map, Set, DOM node, 등 컬렉션을 반복할 수 있는 객체(iterable Object)를 반복 처리함 EX 1 class class- 특별한 함수. 호이스팅 되지 않는 것 처럼 동작- 몸체에는 메소드만 선언 할 수 있음- 선언과 초기화는 반드시 constructor 내부에서 실시 constructor- 인스턴스를 생성하고 클래스 프로퍼티를 초기화하기 위한 특수한 메소드- 클래스 내에 한개만 존재 할 수 있으며 생략할 경우 constructor(){} 를 포함한 것과 동일하게 동작 ⇒ new 연산자로 인스턴스를 생성할 때 함께 호출한 것이 바로 constructor EX 1 getter- 메소드 앞에 get 키워드를 사용해 정의- 메소드 이름을 클래스 프로퍼티 이름처럼 사용 - 파라미터가 없어야하며 무언가를 반환해야 함 setter- 메소드 앞에 set 키워드를 사용해 정의- 한개의 파라미터만 가질 수 있음- 프로퍼티처럼 값.. object / arrow function / spread / rest / default object- 메소드의 function을 생략할 수 있음- 변수명과 속성명이 같은 경우 생략가능 EX 1 EX 2 arrow function- 화살표 함수는 prototype 프로퍼티를 가지고 있지 않음 -> 생성자 함수로 사용할 수 없음- 화살표 함수는 arguments 객체를 가지고 있지 않음 EX 3 EX 4 EX 5⇒ 화살표 함수는 자신을 포함하고 있는 상위 컨텍스트로부터 this를 계승 받는다.⇒ 메소드로 정의한 화살표 함수 내부의 this는 상위 컨택스트인 window 객체를 가리킨다.그러므로 화살표 함수로 메소드를 정의하는 것은 피해야 한다. spread 연산자- 연산자의 대상을 개별 요소로 분리함 EX 6 rest연산자- 나머지를 할당 받는 배열- 그러므로 반드시 마지막에 위치해야함 EX .. let / const let, const 공통- 블록 단위의 유효 범위를 갖음- 전역 스코프에서 선언시 var와는 다르게 전역객체(window)의 프로퍼티는 되지 않음- 재선언 불가능 EX 1 const- let은 재할당 가능하지만 const 는 재할당이 불가능- object, array의 경우 레퍼런스 변수이기 때문에 메모리 주소값이 변경되지 않는 작업은 가능- const는 반드시 선언과 동시에 값을 할당해야 함 EX 2 결론- 기본적으로는 const를 사용- 재할당이 필요한 경우에만 let을 사용- ES6을 사용한다면 var 키워드는 사용하지 않음 ⇒ 참고 : airbnb 자바스크립트 스타일 가이드 이전 1 다음