WEB

    Map 오브젝트

    - Map 오브젝트와 Object 오브젝트의 차이 1) key에 다양한 타입을 작성할 수 있는것과 이터러블로 작성하는 것 2) ES3에서 Object 오브젝트의 key 갑싱 같아도 추가되었으나 ES5 strict 모드에서는 추가되지 않는다. 그리고 추가한 순서로 읽히는 것을 보장하지 않습니다. - Map 오브젝트는 key 값이 같으면 추가되지 않고 value 값이 대체되며 추가한 순서로 읽힌다. - Map 오브젝트에 추가한 순서대로 읽히는 것은 엔진에서 key, vlaue 외에 별도로 일련번호를 부여한다. - Map 오브젝트는 컬렉션에서 효율이 높습니다. - key, value 형태이고 이터러블일 때는 Map 오브젝트를 사용하는것이 좋다. - 값과 함수가 혼합된 형태면 Object 오브젝트를 사용하는것이..

    Class -> 제너레이터 / new.target / image

    Class -> 제너레이터 / new.target / image

    제너레이터 // 제너레이터 class Member{ *gen(){ // 제너레이터 함수 정의 yield 10; yield 20; } } let obj2 = new Member(); let genObj2 = obj2.gen(); console.log(genObj2.next()); // {value: 10, done: false} console.log(genObj2.next()); // {value: 20, done: false} new.target// new.target let Sports2 = function () { console.log(new.target); } Sports2(); // undefined new Sports2(); /* ƒ () { console.log(new.target); } */..

    Class -> extends / super / 빌트인 오브젝트 상속 / static / Class 호이스팅불가

    extends // extends class Sports{ constructor(member) { this.member = member; } getMember(){ return this.member; } }; class Soccer extends Sports{ setGround(ground){ this.ground = ground; } }; let obj = new Soccer(13); /* 1) Soccer 클래스의 Construcotr가 호출 2) 그런데 Soccer 클래스에 constructor를 작성하지 않았으므로 슈퍼 클래스의 constructor가 호출되면서 13을 파리미터 값으로 넘겨줌 3) 슈퍼 클래스의 constructor에서 this는 현재의 인스턴스를 참조하므로 인스턴스의 member..

    Class -> 메서드 선언, 상속 메커니즘

    // strict 모드에서 실행 class Member { // 클래스 인스턴스를 생서하고 생성한 인스턴스를 초기화하는 역할 constructor(name) { this.name= name; } // prototype에 프로퍼티 연결 setName(name){ this.name = name; } getName(){ return this.name; } }; // 클래스 밖에서 Member 클래스에 메서드를 추가하는방법 Member.prototype.getTitle = function () { }; console.log(typeof Member); // function let memberObj = new Member("과목"); console.log(memberObj.getName()); // 과목 // -..

    Generator Object-2

    Generator Object-2

    next() 활용1 function* f4(one) { let check=yield one; console.log(one,",",check); // 10 , 30 return one+check; } generatorObj = f4(10); console.log(generatorObj.next()); // { value: 10, done: false } console.log(generatorObj.next(30)); // { value: 40, done: true } // ---------- let getAmount = function*(qty, price) { let amount = Math.floor(qty*price); let discount = yield amount; return amount-di..