lef a = 123 //和 var 作用一样,块作用域
const PI = 3.14159 //常量,值不能被修改
//模板字符串
let name = "张三";
let age = "22";
console.log(`${name}的年龄是${age}`);
//属性简写
var name = "zhangsan";
var app = {
name
}
console.log(app.name);
//方法简写
abc:function(){}
abc(){}
//箭头函数
setTimeout(function(){
console.log("执行");
},1000)
setTimeout(()=>{
console.log("执行");
},1000)
//回调函数
function abc(callback){
/**
回调函数相当于:
callback:function(data){
console.log(data);
}
*/
setTimeout(()=>{
var name = "zhangsan";
callback(name);
},1000);
}
//外部获取异步方法的数据
abc(function(data){
console.log(data); // zhangsan
})
//promise 回调函数
var p=new Promise(function(resolve,reject){
//ajax
setTimeout(function(){
var name='张三';
if(Math.random()<0.7){
resolve(name);
}else{
reject('失败');
}
},1000);
})
p.then((data)=>{
console.log(data);
})
//之前的再改一下
function getData(resolve,reject){
//ajax
setTimeout(function(){
var name='张三';
resolve(name);
},1000);
}
var p=new Promise(getData);
p.then((data)=>{
console.log(data);
})
//async 是让方法变成异步
async function getData(){
return '这是一个数据';
}
console.log(getData()); //Promise { '这是一个数据' }
//获取异步函数里的方法
//await 阻塞的功能 ,把异步改成一个同步
async function getData(){
return '这是一个数据';
}
async function test(){
var d=await getData();
console.log(d);
}
test();
//async 定义的方法返回的是 Promise对象
function getData(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
var username='张三';
resolve(username);
},1000)
})
}
async function test(){
var data=await getData();
console.log(data);
}
test();