前言

前端技术更新的实在是太快了,各种框架百花齐放,随着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号程序员节,那就祝大家节日快乐,技术节节高升吧。

参考资料:

MDN

ES2019新特性的学习的更多相关文章

  1. 【CuteJavaScript】ES2019 新特性汇总

    最近 ECMAScript2019,最新提案完成:tc39 Finished Proposals,我这里也是按照官方介绍的顺序进行整理,如有疑问,可以查看官方介绍啦~ 另外之前也整理了 <ES6 ...

  2. ios开发ios9新特性关键字学习:泛型,逆变,协变,__kindof

    一:如何去学习?都去学习什么? 1:学习优秀项目的设计思想,多问几个为什么,为什么要这么设计,这么设计的好处是什么,还能不能在优化 ,如何应用到自己的项目中 2:学习优秀项目的代码风格,代码的封装设计 ...

  3. Java8部分新特性的学习

    Java8中的新特性 一.Lambda表达式 Lambda表达式可以理解为一种可传递的匿名函数:它没有名称,但又参数列表.函数主体.返回类型,可能还有一个可以抛出的异常列表. 匿名:和匿名类类似的,它 ...

  4. Java8 的一些新特性的学习理解

    近期在学习队列相关的一些知识,在学习过程中发现Iterable<T>接口中新增了两个新的方法,出于好奇,就想知道这是什么东东,干什么用的.俗话说:实践出真知,所以就有了以下反复的测试. 先 ...

  5. 关于ES6的一些新特性的学习

    一.关于变量 ES5 1.只有全局作用域变量和函数作用域变量 2.“变量提升”(当程序进入一个新的函数时,会将该函数中所有的变量的声明放在函数开始的位置.仅仅会提升变量的声明,不会提升变量的赋值) E ...

  6. Java8 新特性 Lambda学习

    import java.util.ArrayList;import java.util.Collections;import java.util.IntSummaryStatistics;import ...

  7. postgresql9.4新特性jsonb学习-update更新操作

    先科普下概念:PgSQL9.4 新增 JSONB 数据类型, JSONB 同时属于 JSON (JavaScript Object Notation) 数据类型,jsonb 和 json 的输入数据几 ...

  8. ArcGIS API for JavaScript 4.2学习笔记[0] AJS4.2概述、新特性、未来产品线计划与AJS笔记目录

    放着好好的成熟的AJS 3.19不学,为什么要去碰乳臭未干的AJS 4.2? 4.2全线基础学习请点击[直达] 4.3及更高版本的补充学习请关注我的博客. ArcGIS API for JavaScr ...

  9. java8新特性学习1

    java8增加了不少新特性,下面就一些常见的新特性进行学习... 1.接口中的方法 2.函数式接口 3.Lambda表达式 4.java8内置的四大核心函数式接口 5.方法引用和构造器引用 6.Str ...

随机推荐

  1. distinct关键字对执行计划的影响

    一.前言 最近看到一段话,"count(distinct 列名)若列上有索引,且有非空约束或在where子句中使用is not null,则会选择索引快速全扫描.其余情况则选择全表扫描&qu ...

  2. Change Field Layout and Visibility in a List View 在列表视图中更改字段布局和可见性

    This lesson will guide you through the steps needed to select columns displayed in the List View. Fo ...

  3. 微信小程序 wxml 文件中如何让多余文本省略号显示?

    废话不多说,之前写小程序碰到了一个问题,如何在 wxml 页面中截取数据? 1.wxs   取数据想必大家都会,不就是 substring 吗?但是这种方法在 wxml 页面中是无效的. 那还有 cs ...

  4. Linux和Windows的区别

    1. 软件与支持 • Windows 平台:数量和质量的优势,不过大部分为收费软件:由微软官方提供重要支持和服务: • Linux 平台:大都为开源自由软件,用户可以修改定制和再发布,由于基本免费没有 ...

  5. 【poj2661】Factstone Benchmark(斯特林公式)

    传送门 题意: 给出\(x,x\leq 12\),求最大的\(n\),满足\(n!\leq 2^{2^x}\). 思路: 通过斯特林公式: \[ n!\approx \sqrt{2\pi n}\cdo ...

  6. 201871010113-刘兴瑞《面向对象程序设计(java)》第一周学习总结

    正文开头: 项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>    https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接 ...

  7. Leetcode 216. 组合总和 III

    地址 https://leetcode-cn.com/problems/combination-sum-iii/ 找出所有相加之和为 n 的 k 个数的组合.组合中只允许含有 1 - 9 的正整数,并 ...

  8. CF414D Mashmokh and Water Tanks

    CF414D Mashmokh and Water Tanks 洛谷评测传送门 题目描述 Mashmokh is playing a new game. In the beginning he has ...

  9. linux编程fcntl获取和设置文件锁

    #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types. ...

  10. 【洛谷5368】[PKUSC2018] 真实排名(组合数学)

    点此看题面 大致题意: 有\(n\)个数字,定义一个数的排名为不小于它的数的个数.现要随机将其中\(k\)个数乘\(2\),求对于每个数有多少种方案使其排名不变. 分类讨论 对于这种题目,我们可以分类 ...