es6总结(一)--let和const

/*es6 是强制使用严格模式*/
/**/
function test(){
	for(let i=0;i<10;i++){
		console.log(i)//let生命的变量只在其声明的代码块中起作用{}
	}
	//console.log(i);//报引用错误而不是undefined
}
test();
//let a=1;
//let a=2;//index.js:56 Uncaught Error: Cannot find module "./class/lesson1"文件没有编译成功
//let声明的变量不能重复重复声明
/*****************************以上是let***********************************/


/*****************************以下是const*********************************/
function last(){
	const pi=3.1415926//声明的时候必须赋值且不能修改
	console.log(pi)
	//pi=2//index.js:56 Uncaught Error: Cannot find module "./class/lesson1"  不能重新赋值
	const k={//对象是引用类型  k内存中指向这个对象的指针
		a:1
	}
	k.b=3
	console.log(k)
}

last()

  

//解构赋值  左右一一对应进行赋值

//数组解构赋值
{
	let a,b,rest;
	[a,b]=[1,2]
	console.log(a)//1
	console.log(b)//2
}
{
	let a,b,rest;
	[a,b,...rest]=[1,2,3,4,5,6,7]
	console.log(a,b,rest)//1 2 [3, 4, 5, 6, 7]
}
{
	let a,b;
	({a,b}={a:1,b:2})
	console.log(a,b)
}
//使用场景
//实现变量之间的交换
{
	let a=1;
	let b=2;
	[a,b]=[b,a]
	console.log(a,b)//2,1
}
{
	function f(){
		return [1,2]
	}
	let a,b;
	[a,b]=f();
	console.log(a,b)
}
{
	function f(){
		return [1,2,3,4,5,6]
	}
	let a,b,c;
	[a,,,b]=f();
	console.log(a,b)
}
{
	function f(){
		return [1,2,3,4,5,6]
	}
	let a,b,c;
	[a,,...b]=f();
	console.log(a,b)
}
//对象的解构赋值
{
	let o={p:42,q:true};
	let {p,q}=o
	console.log(p,q)
}
{
	let metaData={
		title:'abc',
		test:[
			{
				title:'test',
				desc:'description'
			}
		]
	}
	let {title:esTitle,test:[{title:cnTitle}]}=metaData;
	console.log(esTitle,cnTitle)
}

  

原文地址:https://www.cnblogs.com/liuhao-web/p/7018343.html