专栏首页前端黑板报ES2019新特性的学习

ES2019新特性的学习

前言

前端技术更新的实在是太快了,各种框架百花齐放,随着NodeJs不断的兴起,各种构建工具也是层出不穷,这不,前两周尤雨溪开源了Vue.js3.0源码之后,很多大佬早已把源码剖析皮都不剩了;昨天NodeJs13.0又发布了,真的是学学学不动了,不过既然选择了程序员这条道路,就得时刻保持新技术的学习,ES2019(ES10)年初都发布了,但是项目中常用的还是ES6以及核心版本,所以还是有必须学习一下ES2019新特性的。

注:调试代码浏览器版本:Google Chrome76.0.3809.132(64位)

1.Array.prototype flat

将多层级的数组平铺成一个数组在项目开发中还是常用的,flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回 语法

var newArray = arr.flat([depth])

参数 指定要提取嵌套数组的结构深度,默认值为1,当层级超过一层的情况下,用Infinity可以把多级数组平铺为一个数组

返回值 一个包含将数组与子数组中所有元素的新数组

var arr=[1,2,[3,4,[5,6]]];
var arr2=arr.flat(); //[1, 2, 3, 4, [5, 6]]
var arr3=arr.flat(Infinity); //[1, 2, 3, 4, 5, 6]

2.String.prototype trimStart and trimEnd

js的String类型已经有trim()方法了,起作用时去除字符串前后空格

1.trimStart()方法从字符串的开头删除空格。trimLeft()是此方法的别名 返回值 一个新字符串,表示从其开头(左端)除去空格的调用字符串

var str="  Hello world  ";
var str1=str.trimStart(); //Hello world
var str2=str.trimLeft(); //Hello world

2.trimEnd()方法从一个字符串的末端移除空白字符。trimRight() 是这个方法的别名 返回值 一个新字符串,表示从调用字串的末(右)端除去空白

var str="  Hello world  ";
var str1=str.trimEnd(); //  Hello world
var str2=str.trimRight(); //  Hello world

3.Object.fromEntries

Object.fromEntries是Object.entries的反向方法

Object.entries是将一个键值对对象,转换为Array

Object.fromEntries是将Array或Map等对象,转换为键值对对象

var arr=[
  ['name','tom'],
  ['age','18']
];
var arr1=Object.fromEntries(arr);
console.log(arr1);
// {name: "tom", age: "18"}

4.Function.prototype.toString

toString()方法返回一个表示当前函数源代码的字符串

function sayHello(){
  // say Hello
  alert('hello');
}
console.log(sayHello.toString());

// 打印结果
function sayHello(){
  // say Hello
  alert('hello');
}

5.可选的catch绑定(Catch Binding)

之前使用try catch的时候,catch有个必须要写的参数

try{
  alert(msg);
}catch(err){
  console.log(err);
}
// msg is not defined

现在catch后面不用写参数,方便了一点

try{
  // code
}catch{
  //
}

6.JSON超集

此提议的动机是 JSON 字符串可以包含未转义的 U + 2028 LINE SEPARATOR 和 U + 2029 PARAGRAPH SEPARATOR 字符,而 ECMAScript 字符串则不能。在 ES2019 之前,它会产生错误SyntaxError: Invalid or unexpected token

const LS = eval('"\u2028"'); const PS = eval("'\u2029'");

以上只列了几个常用的ES2019新特性,并举例加以说明,恰逢今天有事10月24号程序员节,那就祝大家节日快乐,技术节节高升吧。

原文:

https://www.cnblogs.com/peerless1029/archive/2019/10/24/11730019.html

作者:Peerless1029

本文分享自微信公众号 - 前端黑板报(FeHeiBanBao)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 设计的五大原则-SOLID

    最近在读《架构整洁之道》这一本书,这本书的确写得不错,最近也没有更新文章,一方面再忙工作,另一方面也再啃一些书。当然文章还是得更新,《架构整洁之道》里面有些有意...

    用户5397975
  • 教你用Java字节码做日志脱敏工具

    本篇是本系列的最后一篇,在这篇中教你用ASM实际开发中做一些可用的东西。包括之前说的如何修改toString,完成一些脱敏。

    用户5397975
  • 深入剖析来自未来的缓存-Caffeine

    读这篇文章之前希望你能好好的阅读: 你应该知道的缓存进化史 和 如何优雅的使用缓存? 。这两篇文章主要从一些实战上面去介绍如何去使用缓存。在这两篇文章中我都比较...

    用户5397975
  • 浅析如何设计一个亿级网关

    API网关可以看做系统与外界联通的入口,我们可以在网关进行处理一些非业务逻辑的逻辑,比如权限验证,监控,缓存,请求路由等等。

    用户5397975
  • 文件IO操作的最佳实践

    已经过去的中间件性能挑战赛,和正在进行中的 第一届 PolarDB 数据性能大赛 都涉及到了文件操作,合理地设计架构以及正确地压榨机器的读写性能成了比赛中获取较...

    用户5397975
  • 揭秘Java高效随机数生成器

    在Java中一提到随机数,很多人就会想到Random类,如果有生成随机数的需求的时候,大多数时候都会选择使用Random来进行随机数生成,虽然其内部使用CAS来...

    用户5397975
  • 优雅的处理你的Java异常

    本文仅按照业务系统开发角度描述异常的一些处理看法.不涉及java的异常基础知识,可以自行查阅 《Java核心技术 卷I》 和 《java编程思想》 可以得到更多...

    用户5397975
  • 谈谈引用和Threadlocal的那些事

    某一天在某一个群里面的某个群友突然提出了一个问题:"threadlocal的key是弱引用,那么在threadlocal.get()的时候,发生GC之后,key...

    用户5397975
  • 一文探讨堆外内存的监控与回收

    记得那是一个风和日丽的周末,太阳红彤彤,花儿五颜六色,96 年的普哥微信找到我,描述了一个诡异的线上问题:线上程序使用了 NIO FileChannel 的 堆...

    用户5397975
  • Java并发计数器探秘

    一提到线程安全的并发计数器,AtomicLong 必然是第一个被联想到的工具。Atomic* 一系列的原子类以及它们背后的 CAS 无锁算法,常常是高性能,高并...

    用户5397975

扫码关注云+社区

领取腾讯云代金券