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号程序员节,那就祝大家节日快乐,技术节节高升吧。
参考资料:
MDN
ES2019新特性的学习的更多相关文章
- 【CuteJavaScript】ES2019 新特性汇总
最近 ECMAScript2019,最新提案完成:tc39 Finished Proposals,我这里也是按照官方介绍的顺序进行整理,如有疑问,可以查看官方介绍啦~ 另外之前也整理了 <ES6 ...
- ios开发ios9新特性关键字学习:泛型,逆变,协变,__kindof
一:如何去学习?都去学习什么? 1:学习优秀项目的设计思想,多问几个为什么,为什么要这么设计,这么设计的好处是什么,还能不能在优化 ,如何应用到自己的项目中 2:学习优秀项目的代码风格,代码的封装设计 ...
- Java8部分新特性的学习
Java8中的新特性 一.Lambda表达式 Lambda表达式可以理解为一种可传递的匿名函数:它没有名称,但又参数列表.函数主体.返回类型,可能还有一个可以抛出的异常列表. 匿名:和匿名类类似的,它 ...
- Java8 的一些新特性的学习理解
近期在学习队列相关的一些知识,在学习过程中发现Iterable<T>接口中新增了两个新的方法,出于好奇,就想知道这是什么东东,干什么用的.俗话说:实践出真知,所以就有了以下反复的测试. 先 ...
- 关于ES6的一些新特性的学习
一.关于变量 ES5 1.只有全局作用域变量和函数作用域变量 2.“变量提升”(当程序进入一个新的函数时,会将该函数中所有的变量的声明放在函数开始的位置.仅仅会提升变量的声明,不会提升变量的赋值) E ...
- Java8 新特性 Lambda学习
import java.util.ArrayList;import java.util.Collections;import java.util.IntSummaryStatistics;import ...
- postgresql9.4新特性jsonb学习-update更新操作
先科普下概念:PgSQL9.4 新增 JSONB 数据类型, JSONB 同时属于 JSON (JavaScript Object Notation) 数据类型,jsonb 和 json 的输入数据几 ...
- ArcGIS API for JavaScript 4.2学习笔记[0] AJS4.2概述、新特性、未来产品线计划与AJS笔记目录
放着好好的成熟的AJS 3.19不学,为什么要去碰乳臭未干的AJS 4.2? 4.2全线基础学习请点击[直达] 4.3及更高版本的补充学习请关注我的博客. ArcGIS API for JavaScr ...
- java8新特性学习1
java8增加了不少新特性,下面就一些常见的新特性进行学习... 1.接口中的方法 2.函数式接口 3.Lambda表达式 4.java8内置的四大核心函数式接口 5.方法引用和构造器引用 6.Str ...
随机推荐
- Python中常见的8种数据结构的实现方法(建议收藏)
数据结构作为计算机基础的必修内容,也是很多大型互联网企业面试的必考题.可想而知,它在计算机领域的重要性. 然而很多计算机专业的同学,都仅仅是了解数据结构的相关理论,却无法用代码实现各种数据结构. 栈 ...
- Flask 教程 第九章:分页
本文翻译自The Flask Mega-Tutorial Part IX: Pagination 这是Flask Mega-Tutorial系列的第九部分,我将告诉你如何对数据列表进行分页. 在第八章 ...
- Python 函數 Function
函數最初被設計出來,是用來減輕重複 coding 一段相同的代碼,這之間只有代碼 (方法,Method) 的重用,但還沒有物件導向OO整個Object 的屬性與方法被封裝重用的概念. 函數的定義很簡單 ...
- angularjs路由传值$routeParams
AngularJS利用路由传值, 1.导包 <script src="angular.min.js"></script> <script src=&q ...
- Python 读取照片的信息:拍摄时间、拍摄设备、经纬度等,以及根据经纬度通过百度地图API获取位置
通过第三方库exifread读取照片信息.exifread官网:https://pypi.org/project/ExifRead/ 一.安装exifreadpip install exifread ...
- CodeForces - 103B(思维+dfs找环)
题意 https://vjudge.net/problem/CodeForces-103B 很久很久以前的一天,一位美男子来到海边,海上狂风大作.美男子希望在海中找到美人鱼 ,但是很不幸他只找到了章鱼 ...
- Druid-代码段-4-3
所属文章:池化技术(一)Druid是如何管理数据库连接的? 本代码段对应流程4.2,防止内存泄漏的连接关闭检测: //回收长期未归还的连接(再次说明:该方法仅在removeAbandoned设置为tr ...
- 手机号码生成器app有吗,怎么使用的呢?
手机号码生成器app是有的,他有手机号码生成器安卓版,也有手机号码生成器苹果版的.很多人会误解他的功能以为是拿来生成号码来接验证码的,其实他不是拿来接短信的.它是用来给别人做营销找客沪的找客源的,接不 ...
- Gaussian field consensus论文解读及MATLAB实现
Gaussian field consensus论文解读及MATLAB实现 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 一.Introduction ...
- 使用vmware workstation安装centos 7操作系统
安装步骤 1.点击创建虚拟机,进入新建虚拟机向导,选择自定义,典型:相当于去电脑 旗舰店里店员推荐的是一样,推荐的比一定好,自定义:是手动操作的,没有linux基础最好选择自定义.点击下一步. 2.虚 ...