es6筆記乾貨

/***
 * 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);
相關文章
相關標籤/搜索