async和await
简单来说是基于promise的语法糖,通过使用他们,异步代码看起来更像是同步代码,是异步编程的终极解决方案,async关键字放在函数声明的前面,使其成为异步函数 async函数返回值为promise,而不是直接返回值,可以在异步函数里面使用await关键字
await关键字只能在async函数里 使用,他会在程序运行到该地方的时候等待异步代码执行
function request(url){
return new Promise(resolve=>{
axios.get(url).then(ok=>{
resolve(url)
})
}
}
async function getData(){
let res1=await request('dizhi1')
let res2=await request('dizhi2')
let res3=await request('dizhi3')
}
Object.values()
获取对象自身可枚举属性的每一个属性值,返回收集完成后的数组
Object.values(obj)
参数:被返回可枚举属性值的对象。
let a={a:1,b:2,c:3};
console.log(Object.values(a)) //[1, 2, 3]
console.log(Object.keys(a)) //['a', 'b', 'c']
Object.entries()
获取对象自身可枚举属性的每一组键值对,返回收集完成后的数组
Object.entries(obj)
参数:可以返回其可枚举属性的键值对的对象。
let a={a:1,b:2,c:3};
console.log(Object.entries(a)) //[['a',1],['b',2],['c',3]]
Object.getOwnPropertyDescriptors()
用来获取一个对象的所有自身属性的描述 { configurable:描述符本身是否可以被修改,是否可以被删除 enumerable:属性的值是否为可枚举 value: 属性值 writable: 属性的值是否可以修改 },
Object.getOwnPropertyDescriptors(obj) 参数:任意对象
let a={a:1,b:2,c:3};
console.log(Object.getOwnpropertyDescripts(a))
{
a:{
configurable: true
enumerable: true
value: 1
writable: true
},
b:{
configurable: true
enumerable: true
value: 2
writable: true
},
c:{
configurable: true
enumerable: true
value: 3
writable: true
}
}
String.prototype.padStart()
用另一个字符串填充当前字符串(填充到前面),返回值为填充后的内容
str.padStart(targetLength [, padString])
参数:
- targetLength: 目标长度(需要填充到的,如果小于当前字符串 则返回当前字符串本身)
- padString:填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧 的部分,其他部分会被截断。此参数的默认值为 " "
let a='a'
a.padStart(2,'b')//ba
a.padStart(12,'b')//bbbbbbbbbbba
a.padStart(0,'b')//a
a.padStart(2,'basdasdas')//ba
String.prototype.padEnd()
用另一个字符串填充当前字符串(填充到后面),返回值为填充后的内容
str.padEnd(targetLength [, padString])
参数:
- targetLength: 目标长度(需要填充到的,如果小于当前字符串 则返回当前字符串本身)
- padString:填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧 的部分,其他部分会被截断。此参数的默认值为 " "
let a='a'
a.padEnd(2,'b')//ab
a.padEnd(12,'b')//abbbbbbbbbbb
a.padEnd(0,'b')//a
a.padEnd(2,'basdasdas')//ab