ES6总结

let createIterator = items =>{
    let i = 0;
    return {
        next () {
            let done = (i >= items.length);
            let value = !done ? items[i++] : undefined;
            return {
                done,
                value
            }
        }
    }
}


console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
function *createIterator(name){
yield `Hi!${name} How are you?`;
yield `${name} , I'm fine thank you , and you?`;
yield `I'm fine too`;
}

let iterator = createIterator('journey');
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
function *createIterator(...items){
    for(let i = 0 ; i < items[0].length ; i++){
        yield items[0][i];
    }
}

let iterator = createIterator([1,2,3,4,5,6]);

console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
class Person{
    //构造
    constructor(name,age){
        this.name = name;
        this.age = age;
        this.address = [];
    }

    get fn(){
        return this.address;
    }

    set fn(address){
        this.address.push(address);
    }

    toString(){
        return (`${this.name} 的年龄是 ${this.age} 岁 来自${this.address}`);
    }

  static isPerson(){
    console.log('是人')
  } } let person
= new Person('journey',25); person.fn = '江苏省'; console.log(person); console.log(person.toString()); console.log(person.hasOwnProperty('name')); console.log(person.hasOwnProperty('age')); console.log(person.hasOwnProperty('toString')); console.log(person.__proto__.hasOwnProperty('toString'));
class Person {
    constructor(name , age){
        this.name = name;
        this.age = age;
    }

    intro (){
        return `${this.name} , ${this.age}`;
    }
}


class Chef extends Person{
    constructor(name,age){
        super(name,age );
    }
}


let journey = new Chef('journey','25');
console.log(journey);
let setV = new Set();
[1,2,3,4,5,6,7,1,2,4].forEach(v => setV.add(v));

for(let i of setV){
    console.log(i);
}

let items = new Set([1,2,4,1,6,7,8]);
console.log(items.size);

console.log(...items);

console.log(items.has(1));
let maps = new Map();
let items = [
['name','journey'],
['age','25']
];

items.forEach(
([key,value]) => maps.set(key,value)
)

for(let item of maps){
console.log(item);
}

for(let value of maps.values()){
console.log(value);
}

for(let key of maps.keys()){
console.log(key);
}

for(let [key,value] of maps.entries()){
console.log(key ,value);
}

for(let [key,value] of maps){
console.log(key,value);
}

maps.set('address','jiangsu');

console.log(...maps.keys());
console.log(...maps.values());
console.log(...maps.entries());
console.log(...maps);

console.log(maps);
 
//Map 转为对象
function strMapToObj(strMap) {
    let obj = Object.create(null);
    for (let [k,v] of strMap) {
        obj[k] = v;
    }
    return obj;
}

//对象转为Map
function objToStrMap(obj){
    let strMap = new Map();
    for(let k of Object.keys(obj)) {
        strMap.set(k , obj[k]);
    }
    return strMap;
}

console.log(objToStrMap({yes: true , no : false}));


//Map转为JOSN
function strMapToJson(strMap) {
    return JSON.stringify(strMapToObj(strMap));
}


let myMap = new Map().set('yes',true).set('no',false);
console.log(strMapToJson(myMap));



//JSON 转为 Map
function jsonToStrMap(jsonStr) {
    return objToStrMap(JSON.parse(jsonStr));
}

console.log(jsonToStrMap('{"yes": true, "no": false}'));

 

posted @ 2018-01-25 15:07  journeyIT  阅读(13)  评论(0编辑  收藏  举报