ES7及以后

ES7

Array Includes

  • 在ES7之前,如果我们想判断一个数组中是否包含某个元素,需要通过 indexOf 获取结果,并且判断是否为 -1。
  • 在ES7中,我们可以通过includes来判断一个数组中是否包含一个指定的元素,根据情况,如果包含则返回 true,
    否则返回false。


    image.png

指数(乘方) exponentiation运算符

  • 在ES7之前,计算数字的乘方需要通过 Math.pow 方法来完成。
  • 在ES7中,增加了 **运算符,可以对数字来计算乘方。
    image.png

ES8

Object values

前我们可以通过 Object.keys 获取一个对象所有的key,在ES8中提供了 Object.values 来获取所有的value值:

image.png

Object entries

通过Object.entries 可以获取到一个数组,数组中会存放可枚举属性的键值对数组。

image.png

String Padding

某些字符串我们需要对其进行前后的填充,来实现某种格式化效果,ES8中增加了 padStart 和 padEnd 方法,分
别是对字符串的首尾进行填充的。


image.png

应用场景:比如需要对身份证、银行卡的前面位数进行隐藏:


image.png

Trailing Commas

在函数定义和调用时多加一个逗号:


image.png

ES9

ES10

flat() 和 flatMap()

flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。


image.png

flatMap() 方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。flatmap()接收两个参数callback,thisArg
callback可以接受三个参数,currentValue当前正在数组中处理的元,index数组中正在处理的当前元素的索引。array被调用的 map 数组
thisArg为指定this对象

  • 注意一:flatMap是先进行map操作,再做flat的操作;
  • 注意二:flatMap中的flat相当于深度为1;
var arr1 = [1, 2, 3, 4];

arr1.map(x => [x * 2]);
// [[2], [4], [6], [8]]

arr1.flatMap(x => [x * 2]);
// [2, 4, 6, 8]

// only one level is flattened
arr1.flatMap(x => [[x * 2]]);
// [[2], [4], [6], [8]]

示例应用

// 消除负数,将奇数变成偶数加一,偶数直接保留
let a = [5, 4, -3, 20, 17, -33, -4, 18]
//       |\  \  x   |  | \   x   x   |
//      [4,1, 4,   20, 16, 1,       18]

a.flatMap( (n) =>
  (n < 0) ?      [] :
  (n % 2 == 0) ? [n] :
                 [n-1, 1]
)

// expected output: [4, 1, 4, 20, 16, 1, 18]

Object fromEntries

image.png

应用场景
将前端传过来的参数转换为一个对象


image.png

trimStart trimEnd

去除一个字符串首尾的空格,我们可以通过trim方法,如果单独去除前面或者后面呢?


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容