/*** * es6 * */ { //let [foo, [[bar], baz]] = [1, [[2], 3]]; //console.log(foo) } //{ //let [x,,y]=[1,2,3]; //console.info(x); //} { let name ='shulong'; let age= '23'; // console.log(`${name}`,'名字') } { function add(...add){ let sum = 0; for(let val of add){ sum +=val; } return sum; } // console.log(add(2,5,3)) } { //箭頭函數es6箭頭 => 表明大括號 let f =() =>5; //console.log(f()); let sum = (sum1,sum2='2')=>sum1+sum2; //console.log(sum(1,2)); //箭頭函數對應的是數據整合效果,能夠添加複製 } { const full = ({first,last})=>first+'last'; //console.log(full()); } { //sperad ... 參數的運算數組用逗號隔開 function push(array,...items){ array.push(items) } let number =[4,38]; //console.log(...number); } { let birth='2014/10/11'; let Person ={ name:birth }; //console.log(Person.name); } { function sayHello(name="world"){ // console.log(`Hello ${name}`); } //sayHello(); sayHello('wayou') } { function add(...x){ return x.reduce((m,n)=>m+n); } //console.log(add(1,2,3)); //console.log(add(1,2,3,4,5,6,7,8,9)); } { let person =['wuhan','nanjing','hefen']; function say (a1,a2,a3){ // console.log(`hi ${a1},${a2},${a3}`); }; //say(...person); } { let s = new Set();//添加不了重複的數字 //console.log(s.add(1).add(2).add(3));//{1,2,3} let y = new Map(); var e = y.set('hello',32); //console.info(e); //hello=>32 // console.log(y.set(s)); } { let s = new Set();//添加不了重複的數字 let vm = new WeakMap(); vm.set(s,{extra:42}); let a =vm.size === undefined; //console.log(a); } { //symblos; //console.log(Number.EPSILON);//對數 console.log(Number.isInteger(Infinity)); let acosh = Math.hypot(3,4); let hypot = Math.acosh(2); let imul = Math.imul(Math.pow(2,32)-1 , Math.pow(2,32)-2); // console.log('abcde'.contains('cd')); //true let as = 'abc'.repeat(3); Array.from(document.querySelectorAll('*')); Array.of(1,2,3); [0,0,0].fill(7,1); [1,2,3].findIndex(x =>x ==2); //1 //['a','b','c'].values(); // Object.assign(Point,{origin:new Point(0,0)}); let o =1; let k=2; let es5={ o:o, k:k }; let es6 = { o, k }; console.log(es5); console.log(es6); } { let es5 ={ hello:function(){ console.log('hello') } }; let es6 = { hello(){ console.log('hello'); } } console.log(es5.hello()); console.log(es6.hello()); } { let a = 'b'; let es5 = { a:'c', b:'c' }; let es6 = { [a]:'c' } console.log(es5,es6); } { // object 新增api // console.log('字符串',Object.is('abc','abc'),'abc'==='abc'); // console.log('數組',Object.is([],[]),[]===[]); // console.log('拷貝',Object.assign({a:'a'},{b:'b'})); let test = {k:123,o:456}; //拷貝數組鍵值對 for(let [key,value] of Object.entries(test)){ //console.log([key,value]); } } { //symbol 概念 做用 let Symbol1 =Symbol(); let Symbol2 =Symbol(); console.log(Symbol1===Symbol2); let a3 = Symbol.for('a3'); let a4 = Symbol.for('a3'); console.log(a3===a4); } { let a1= Symbol.for('abc'); let obj={ [a1]:'123', 'abc':345, 'c':456 }; // console.log(obj); for(let [key,value] of Object.entries(obj)){ console.log('let ',key,value); //拿不到[a1] } //拿到Symbol Object.getOwnPropertySymbols(obj).forEach(function(item){ console.log(obj[item]); }); //拿到key value Reflect.ownKeys(obj).forEach(function(e){ console.log('ownKeys',e,obj[e]); }) } { let list = new Set(); list.add(5); list.add(7); console.log(list.size); } { let arr =[1,2,3,4,5,'2']; let list2= new Set(arr); console.log(list2); let sta = ['add','delete','clear','has']; let list = new Set(sta); // console.log(list.has('add')); //true // console.log(list.delete('add')); // console.log(list); // console.log(list.clear());//清空 // console.log(list); // for(let key of list.keys()){ // console.log('keys',key); // } // for(let value of list.values()){ // console.log('values',value); // } // for(let [key,value] of list.entries()){ // console.log('en',key,value) // } } { // console.log("Number",Number.parseFloat === parseFloat); // const foo = 'bar'; // const baz = {foo}; //baz // {foo:'bar'} //const baz ={foo:foo}; // function f(x,y){ // // return {x,y}; // } // function f(x,y){ // // return {x:x,y:y}; // } // 數據結構橫向對比 增 查 改 刪 let map = new Map(); let array = []; map.set('t',1); array.push({t:1}); console.log('map-array',map,array); //查詢 let map_exist = map.has('t'); //true let array_exist = array.find(item=>item.t); console.log('map_exist',map_exist,array); // 改 map.set('t',2); array.forEach(item=>item.t?item.t=2:''); console.log('map-array-modify',map,array); //刪除 map.delete('t'); let index = array.findIndex(item=>item.t); array.splice(index,1); console.log('map',map,array); //set array let set = new Set(); let arr =[]; //增 set.add({name:"shulonghu"}); arr.push({name:'shulonghu'}); console.log('set-updet',set,arr); //查 let set_ex = set.has({name:'shulonghu'}); let arr_ex = arr.find(item=>item.name); console.log('set_ex',set_ex,arr_ex); //改 set.forEach(item=>item.name?item.name=2:''); arr.forEach(item=>item.name?item.name=2:''); console.log('set-array',set_ex,arr_ex); //刪 set.forEach(item=>item.name?set.delete(item):''); let indee = arr.findIndex(item=>item.name); arr.splice(indee,1); console.log('/set-arr-empty',set,arr); } { //map set obj let item = {t:1} let map =new Map(); let set =new Set(); let Obj ={}; //增 map.set('t',1); set.add(item); set.add(item); map.set('t',1); Obj['t']=1; console.info('map-set-obj',Obj,map,set) //查 console.info({ 'map':map.has('t'), 'set':set.has('t'), 'Obj':'t' in Obj //查詢 }); //改 map.set('t',2); item.t=2; Obj['t']= 2; console.info('mso-modify',Obj,map,set); // 刪 map.delete('t'); set.delete(item); // delete Obj['t']; console.info('mso-del',Obj,map,set); } //f(1,2);