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}'));