본문 바로가기

Web/Javascript(ES6)

(11)
[ES6] getter / setter Descriptor var obj = {}; Object.defineProperty(obj, "book", { value : 123, enumerable: true }); ES5 getter var obj = {}; Object.defineProperty(obj, "book", { get: function(){ return "책"; } }); ES6 getter var obj = { value: 123, get getTotal(){ return this.value; } } ES6 setter var obj = { set setTotal(value){ this.total = value; } } obj.setTotal = 123;
[ES6] for-of 이터러블 오브젝트를 반복 처리 for (let value of [1,2,3]) { console.log(value); } Object열거 Object를 for-of로 사용 Object.keys() // 객체의 모든 속성을 콘솔에 출력합니다 for (var key of Object.keys(someObject)) { console.log(key + ": " + someObject[key]); }
[ES6] Operation 변수와 문자열 조합 var param = 'size'; var config = { [param]: 12 }; 변수 이름을 [] 안에 작성 프로퍼티 이름으로 사용 프로퍼티 이름 조합과 디스트럭처링 let one = "sports"; let {[one]: value} = {sports: "농구"}; default value function multiply(a, b = 1) { return a * b; } console.log(multiply(5, 2)); // 10 console.log(multiply(5, 1)); // 5 console.log(multiply(5)); // 5 함수의 파라미터에 디폴트 값 할당
[ES6] Destructuring Array 분할 할당 let one, two, three; [one, two, three] = [1, 2, 3]; object 분할 할당 let {one, two} = {one: 10, two: 20}; 파라미터 분할 할당
[ES6] Iteration 반복을 의미반복을 위한 프로토콜(규약) 필요Array가 연상됨 이터러블 오브젝트Array, String, TypedArray, Map, Set spread이터러블 오브젝트를 하나씩 전개[...iterable] String spreadObject spreadfunction spreadrest 파라미터 ...restArray-like
[ES6] Lambda Lambda function 함수 이름이 없는 익명/무명 함수function(){} 형태Lisp 언어가 원조대부분 언어에서 지원
[ES6] Arrow function 사전적 의미화살, 화살표 -> (param) => {}new 연산자로 인스턴스 생성 불가(prototype, constructor가 없음)arguments 사용불가rest 파라미터 사용 권장
[ES6] let, const let 변수 var 문제 해결 let sports = "스포츠" - 스코프를 가진 변수 선언 스코프 범위 - 블록{}, 문장, 표현식 블록{} 안의 블록{}도 스코프 - 블록마다 스코프가 다름 - 각 블록마다 변수 값 유지 글로벌 오브젝트에서 this로 let 변수 참조 불가 this가 window 오브젝트 참조 const 상수 JavaScript에서는 상수는 대문자 사용이 관례 const 변수는 소문자를 사용하기도 함 let 키워드와 기능 같음 const obj = {language: "한글"} 프로퍼티 값은 할당 가능