1.let(块级作用域) ,const(常量)
2. 模板字符串: ·aaaa${aaa}}·
3.方法的简写:
箭头函数里面this指向上下文
()=>{
}
var add = (a,b)=>{
return a+b
}
4.属性的简写:
var name="aaa";
var a = {name}
5.外部获取异步方法里面的数据:
1.回调函数
function getData(){
setTimeout(() => {
var a = 1;
return a;//console.log(getData())会报错,因为函数同步执行时并没有return,所以得到undefined
}, 1000);
}
// 正确方法:
function getData(callBack){
setTimeout(() => {
var a = 1;
callBack(a)
}, 1000);
}
function a(a){
return a;
}
console.log(getData(a))
2.promise来处理异步
var p = new Promise(function(resolve,reject){
setTimeout(() => {
//模拟异步数据
var name = "杭三";
let num = Math.random();
console.log(num)
if(num>0.7){
//模拟成功
resolve(name)
}else{
//模拟失败
reject("err")
}
}, 1000);
})
p.then((data)=>{
console.log(data)
})
//也可以这样:
function getData(resolve,reject){
setTimeout(() => {
//模拟异步数据
var name = "杭三";
let num = Math.random();
console.log(num)
if(num>0.7){
//模拟成功
resolve(name)
}else{
//模拟失败
reject("err")
}
}, 1000);
}
var p = new Promise();
p.then(()=>{}
//还可以这样:
function getData(){
return new Promise((resolve,reject)=>{
setTimeout(() => {
var name = "aaa";
resolve(name)
}, 1000);
})
}
6.async 和await(ES7的语法)
async是让方法变成异步
await是等待异步方法执行完毕
await有阻塞功能,把异步函数变后才能同步执行的(主要功能)
//async让这个方法变成了异步方法,这两个的组合相当于new Promise和.then()
async function delay(){
return "一个数据"
}
async function getData(){
//只有在异步方法里面(async),才可以使用await
var d = await delay();
console.log(d)
}
getData()//调用该异步方法
网友评论