文章目录
1.ES7新特性
1.1 Array Includes
在ES7之前,如果我们想判断一个数组中是否包含某个元素,需要通过 indexOf 获取结果,并且判断是否为 -1。
在ES7之后,我们可以通过includes来判断一个数组中是否包含一个指定的元素,根据情况,如果包含则返回 true,否则返回false
const arr = [10, 20, 30];
console.log(arr.includes(30)); // true
console.log(arr.includes(40)); // false
1.2 指数运算符
在ES7之前,计算数字的乘方需要通过 Math.pow 方法来完成。
在ES7之后,增加了 ** 运算符,可以对数字来计算乘方。
const result1 = Math.pow(2, 2);
const result2 = 3 ** 2;
console.log(result1); // 4
console.log(result2); // 9
2.ES8新特性
2.1 Object values
之前我们可以通过 Object.keys 获取一个对象所有的key
在ES8中提供了 Object.values 来获取所有的value值:
const obj = {
name: "kaisa",
age: 18,
height: 1.88,
};
console.log(Object.values(obj)); // ['kaisa', 18, 1.88]
2.2 Object entries
通过 Object.entries 可以获取到一个数组,数组中会存放可枚举属性的键值对数组。
- 可以针对对象操作;
const obj = {
name: "why",
age: 18,
height: 1.88,
};
console.log(Object.entries(obj)); // [['name', 'why'], ['age', 18], ['height', 1.88]]
- 也可以针对数组、字符串进行操作, 数组和字符串会将索引作为key(了解)
const arr = [10, 20];
const str = "ab";
console.log(Object.entries(arr)); // [['0', 10], ['1', 20]]
console.log(Object.entries(str)); // [['0', 'a'], ['1', 'b']]
2.3 String/Padding
某些字符串我们需要对其进行前后的填充,来实现某种格式化效果,ES8中增加了 padStart 和 padEnd 方法,分别是对字符串的首尾进行填充的。
- 第一个参数, 填充到多少位; 第二个参数, 用什么来填充
const message = "Hello";
// 在开头用a填充到10位
console.log(message.padStart(10, "a")); // aaaaaHello
// 在结尾用b填充到10位
console.log(message.padEnd(10, "b")); // Hellobbbbb
我们最简单的一个应用场景: 比如时间是一位数时, 我们需要填充一个0
const hours = "15".padStart(2, 0);
const minutes = "5".padStart(2, 0);
const seconds = "9".padStart(2, 0);
console.log(`${hours}:${minutes}:${seconds}`); // 15:05:09
2.4 尾部逗号的添加
在ES8中,我们允许在函数定义和调用时多加一个逗号:
function foo(x, y, ) {
console.log(x, y);
}
foo(2, 4, )
2.5 Object Descriptors
Object.getOwnPropertyDescriptors:
- 获取某一个对象的描述 , 这个在之前已经讲过了,这里不再重复。
Async Function:async、await
- 这些和promise息息相关, 后续讲完promise再讲
3.ES9新特性
ES9主要新增了以下知识点, 我们现在没办法讲解, 后续会将
- Async iterators:后续迭代器讲解
- Promise finally:后续讲Promise讲解
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/120134.html