欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ES2019新特性的学习

程序员文章站 2022-04-14 21:51:22
前言 前端技术更新的实在是太快了,各种框架百花齐放,随着NodeJs不断的兴起,各种构建工具也是层出不穷,这不,前两周尤雨溪开源了 "Vue.js3.0" 源码之后,很多大佬早已把源码剖析皮都不剩了;昨天 "NodeJs13.0" 又发布了,真的是学学学不动了,不过既然选择了程序员这条道路,就得时刻 ......

前言

前端技术更新的实在是太快了,各种框架百花齐放,随着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