文章目录
- 前言
- 一、ES7
- (一) includes()
- 二、ES8
- (一)Object.values()
- 1. 意义:遍历对象对的属性值,需要通过属性名key去获取属性值
- 2. 例如:
- -->ES8前
- -->ES8后
- (二)Object.entries()
- 1. 意义:遍历对象对的属性名和属性值
- 2. 例如:
- -->ES8前
- -->ES8后
- (三)字符填充函数padStart、padEnd
- 1. 意义:用在字符串开头或者结尾添加填充字符串
- 2. 应用场景:格式转换
- (四)Object.getOwnPropertyDescriptor()
- 1. 意义:用于获取对象的属性描述符,该属性必须是对象自己定义而不是继承自原型链,其结果可能包含configurable, enumerable, writable, get, set和value等。
- (五)Tralling commas in function
- 1. 意义:函数参数列表结尾允许逗号
- (六)Async/Await
- 1. 意义:异步请求解决方案
- 2. 基本规则:
- 3. 获得返回值: await等待的虽然是promise对象,但不必写.then(....),直接可以得到返回值
- 4. 在当前页面可以直接用标准的try catch语法捕捉错误
- 5. async/await是写异步代码的新方式,相比于Promise,它更简洁,并且处理错误、条件语句、中间值等使用起来更方便
- 总结
前言
此文包含ES7简单的总结,其余均是ES8知识点
一、ES7
(一) includes()
(替代indexof(), 判断是否有交集,返回值true/false)
例如:
const abilityIdList = this.product.packageAbilities.map(item => item.abilityId)
this.packageAbilities = this.abilityUpList.filter(item => abilityIdList.includes(item.abilityId)).map(item => item.name)
二、ES8
(一)Object.values()
1. 意义:遍历对象对的属性值,需要通过属性名key去获取属性值
2. 例如:
–>ES8前
let obj = { a = 1, b = 2, c = 3 };Object.keys(obj).forEach((key) => {console.log(obj[key]); // 输出1, 2, 3});
–>ES8后
let obj = { a = 1, b = 2, c = 3 };Object.values(obj).forEach((key) => {console.log(obj); // 输出1, 2, 3// 无需使用属性名});
(二)Object.entries()
1. 意义:遍历对象对的属性名和属性值
2. 例如:
–>ES8前
let obj = { a = 1, b = 2, c = 3 };Object.keys(obj).forEach((key) => {console.log(key + "," + obj[key]); // 输出a=1, b=2, c=3});
–>ES8后
let obj = { a = 1, b = 2, c = 3 };Object.entries(obj).forEach((c[key, value]) => {console.log(key + ":" + value); // 输出a=1, b=2, c=3});
(三)字符填充函数padStart、padEnd
1. 意义:用在字符串开头或者结尾添加填充字符串
String.prototype.padStart(maxLength, [ , fillString]);
String.prototype.padEnd(maxLength, [ , fillString]);
注:
a. 第一个参数maxLength是目标长度
b. 第二参数[ , fillString]是填充字符串,默认是空格
例如:
console.log('es8'.padStart(6, 'woof')); // 输出wooes8
2. 应用场景:格式转换
例如:
'8:00'.padStar(5, '0'); //输出08:00
(四)Object.getOwnPropertyDescriptor()
(静态方法)
1. 意义:用于获取对象的属性描述符,该属性必须是对象自己定义而不是继承自原型链,其结果可能包含configurable, enumerable, writable, get, set和value等。
(五)Tralling commas in function
1. 意义:函数参数列表结尾允许逗号
例如:
function es8(val1, val2, val3,) {// Do something};
(六)Async/Await
1. 意义:异步请求解决方案
2. 基本规则:
a. async表示此是一个async函数,await只能用在这个函数里
b. async表示在这里等待promise返回结果,再继续执行
c. await后面跟着的应该是一个promise对象(向后台发请求的API)
例如:
// 获取省份列表// TypeScript写法private async getProvinceList() {const res: any = await Ajax.post('api地址');this.provinceList = res.data.province;};
3. 获得返回值: await等待的虽然是promise对象,但不必写.then(…),直接可以得到返回值
4. 在当前页面可以直接用标准的try catch语法捕捉错误
5. async/await是写异步代码的新方式,相比于Promise,它更简洁,并且处理错误、条件语句、中间值等使用起来更方便
总结
仅供参考