ES6常用语法学习

let/const/var

const:定义一个常量,不可改变

const a =1; 
let b=2;
var c=4;
  • let和var都可以声明为一个变量
  • let只在声明的代码块中有作用
  • var的作用范围比let的作用范围大

数组、对象的匹配赋值

<script>
// const、let 、var
    let [a,b,c] =[1,2,3];
    console.log("a="+a);
    console.log("b="+b);
    console.log("c="+c);
// ---解构赋值(匹配赋值)	----
let [d,e,f]=[1,3,5];
console.log("d="+d);
console.log("e="+e);
console.log("f="+f);
let {g,h}={g:"1",h:"2"};
console.log("g="+g);
console.log("h="+h)
</script>

浏览器控制台输出
在这里插入图片描述

模板字符串

<script>
/*
模板字符串
反引号(`)
*/
let a="中国";
let b="我是"+a+"人";
let c=`我是${a}`
console.log(c)
</script>

控制台输出:我是中国人

函数

  • 参数默认值
<script>
// 函数
// 1.参数默认值
function test(a,b=2){
	console.log(a+b);
}
// a=1,b的默认值是2
test(1);//输出3
//a=1,b的默认值是2,传入参数设置b=3
test(2,3);//输出5
</script>
  • 惰性求值
// 惰性求值
let b=1;
function test2(a=b+1){
	//a的值等于传入参数b的值加1
	console.log(a);
}
//b初始值为1,a=1+1=2
test2();
b=3;
//b此时值等于3,a=3+1=4
test2();
</script>

箭头函数

<script>
function context(){
	this.a=1;
	return{
		test1:()=>{
			//此函数this指代的是当前对象,return之前,this声明了变量a,所以输出1
			console.log(this.a);
		},
		test2:function(){
			//此函数this指向当前function,当前function内没有变量a,所以输出undefined
			console.log(this.a);
		}
	}
}
context().test1();//输出1
context().test2();//输出undefined
</script>

rest参数

在参数不确定的情况下可使用

<script>
// rest参数
/* 
 根据条件设置不同的参数值 
 1.调用方法的时候传进去
 2.声明函数参数的时候用表达式,调用前给表达式内的变量赋值
 */
function test3(...params){
	// 控制台输出[1,2,3]
	console.log(params);//这就是一个数组
}
test3(1,2,3)
</script>

扩展预算符

三点运算符,将一个数组转为用逗号分割的参数序列

<script>
// 扩展运算符
console.log(...[1,2,3]);
function add(a,b){
	return a+b;
}
console.log(add(...[1,2]));
// 求数组中最大值
console.log(Math.max(...[1,2,3]));
// 复制数组
let arr1=[1,2,3];
let arr2=[...arr1];
console.log("arr2",arr2);
// 合并数组
let arr3=[1,2,3],arr4=[4,5,6],arr5=[7,8,9];
console.log(...arr3,...arr4,...arr5);
</script>

控制台输出
在这里插入图片描述

属性方法简写

看vue项目有的时候,我们声明data中的属性,以及export
export { imgView} 等同于 export {imgView:imgView}

<script>
// 属性方法简写
let pro="1";
// 属性名为变量名,属性值为变量的值
let obj ={pro};
console.log(obj);
// 对象里面的方法(函数)
let obj2={
	say:function(){
		console.log("说话");
	},
	run(){
		console.log("跑步");
	}
}
obj2.run();
obj2.say();
</script>

控制台输出
在这里插入图片描述

Object.assign

复制对象

<script>
// 复制对象
let obj1={a:1,b:2};
let obj2=Object.assign({},obj1);
console.log(obj2);
let obj3={...obj1};
console.log(obj3);
</script>

控制台输出
在这里插入图片描述

Promise

<script>
// Promise
function test(flag){
	console.log(flag);
	return new Promise((resolve,reject)=>{
		setTimeout(()=>{
			if(flag==1){
				// resolve:处理成功
				resolve("success");
			} else{
				// reject:处理失败
				reject("fail");
			}
		},2000);
	});
}
// then 会返回两个函数,成功回调,失败回调,或是在catch里处理失败也是可以的
test(1).then(data=>{
	console.log(data);//输出1和success
});
test(2).then(data=>{
	console.log(data);//输出2和fail
}).catch(data=>{
	console.log(data);
});
test(2).then(data=>{
	//返回2
	console.log(data);
},(data)=>{
	//失败回调 输出fail
	console.log(data);
});
</script>

Promise.all

<script>
// Promise.all() 接收一个数组为参数
var p1=new Promise(resolve=>{
	setTimeout(()=>{
		// resolve成功返回
		resolve({id:'0001',test:'p1'});
	});
});
var p2=new Promise(resolve=>{
	setTimeout(()=>{
		// resolve成功返回
		resolve({id:'0002',test:'p2'});
	});
});
var p3=new Promise(resolve=>{
	setTimeout(()=>{
		// resolve成功返回
		resolve({id:'0003',test:'p3'});
	});
});
let arr = [p1,p2,p3];
Promise.all(arr).then(data=>{
	console.log(data);
	// 计时结束
	console.timeEnd();
});
</script>
<script>
		console.error("Promise");
		var p1=new Promise(resolve=>{
			setTimeout(()=>{
				resolve({id:'001',test:'p1'});
			},2000);
		});
		var p2=new Promise(resolve=>{
			setTimeout(()=>{
				resolve({id:'002',test:'p2'});
			},2000);
		});
		var p3=new Promise(resolve=>{
			setTimeout(()=>{
				resolve({id:'003',test:'p3'});
			},2000);
		});
		Promise.all([p1,p2,p3]).then(data=>{
			console.log(data);
			console.timeEnd();
		});
		</script>

控制台输出
在这里插入图片描述

async/await

async/await

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值