ES2020 All in One
ES2020 All in One
ES2020 new features / ES11
ES2020 中的10个新功能
1. BigInt
BigInt是JavaScript中最令人期待的功能之一,终于来了。实际上,它允许开发人员在其JS代码中使用更大的整数表示形式进行数据处理和数据处理。
2. Dynamic import
JavaScript中的动态导入使您可以选择将JS文件作为模块自然地动态导入应用程序中。就像您当前使用Webpack和Babel进行操作一样。
3. Nullish Coalescing
空值合并增加了真正检查空值而不是假值的能力。您可能会问,空值和假值之间有什么区别?
在JavaScript中,很多值都是false,例如空字符串,数字0,未定义,null,false,NaN等。
但是,很多时候您可能想检查一个变量是否为空-即它是未定义还是为null,例如当变量可以为空字符串甚至是假值时就可以了。
4. Optional Chaining
可选的链接语法使您可以访问深度嵌套的对象属性,而不必担心该属性是否存在。如果存在,那就太好了!如果不是,将返回undefined。
5. Promise.allSettled
Promise.allSettled方法接受一个Promises数组,并且仅在所有这些Promises都已解决时才解决-解析或拒绝。
6. String#matchAll
matchAll是添加到String原型的新方法,该方法与正则表达式相关。这将返回一个迭代器,该迭代器一个接一个地返回所有匹配的组。
7. globalThis
如果您编写了一些跨平台的JS代码,这些代码可以在Node上,浏览器环境中以及在Web工作人员内部运行,那么您将很难掌握全局对象。
这是因为它是浏览器的窗口,是Node的全局窗口,是web worker的self。如果运行时更多,则全局对象也将有所不同。
8. Module Namespace Exports
在JavaScript模块中,已经可以使用以下语法:
但是,到目前为止,还没有对称的导出语法:
9. Well defined for-in order
ECMA规范未指定(x in y)应按哪个顺序运行。即使以前浏览器自己实现了一致的顺序,但ES2020中已将其正式标准化。
10. import.meta
import.meta对象是由ECMAScript实现创建的,具有空原型。
结论
我喜欢JavaScript社区不断发展和发展的一致性和速度。
看到JavaScript如何从经过十年的嘘声变成如今有史以来最强大,最灵活和通用性最强的语言之一,真是太神奇了,真是太棒了。
ES2020
globalThis
globalThis === window;
// true
globalThis === global;
// true
globalThis =
Object [global] {
global: [Circular],
clearInterval: [Function: clearInterval],
clearTimeout: [Function: clearTimeout],
setInterval: [Function: setInterval],
setTimeout: [Function: setTimeout] {
[Symbol(nodejs.util.promisify.custom)]: [Function]
},
queueMicrotask: [Function: queueMicrotask],
clearImmediate: [Function: clearImmediate],
setImmediate: [Function: setImmediate] {
[Symbol(nodejs.util.promisify.custom)]: [Function]
}
}
global =
Object [global] {
global: [Circular],
clearInterval: [Function: clearInterval],
clearTimeout: [Function: clearTimeout],
setInterval: [Function: setInterval],
setTimeout: [Function: setTimeout] {
[Symbol(nodejs.util.promisify.custom)]: [Function]
},
queueMicrotask: [Function: queueMicrotask],
clearImmediate: [Function: clearImmediate],
setImmediate: [Function: setImmediate] {
[Symbol(nodejs.util.promisify.custom)]: [Function]
}
}
refs
https://xie.infoq.cn/article/5887705e51a51af8b2781a8d3
https://alligator.io/js/es2020/
https://www.freecodecamp.org/news/javascript-new-features-es2020/
https://www.telerik.com/blogs/latest-features-javascript-ecmascript-2020
xgqfrms 2012-2020
www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
ES2020 All in One的更多相关文章
- ES2020的这些新功能令人期待
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://blog.bitsrc.io/es2020-has-been-finalized- ...
- ES2020新特性链操作符 '?.'和'??'
ES2020新特性,js中的可选链操作符?. 概述 回想一下,我们是如何访问可能含有空值(null或undefined)属性的嵌套对象,比如访问web api 返回结果的user详情,可以使用嵌套的三 ...
- ES2020链判断运算符?.和Null判断运算符??
链判断运算符 ?. 业务场景: 1 // 假设data是个数组,如果data没有值,为undefinded,则直接复制会报错,因为没有length这个属性 2 3 const dateCount = ...
- ES2020 系列:可选链 "?." 为啥出现,我们能用它来干啥?
可选链 "?." 可选链 ?. 是一种访问嵌套对象属性的安全的方式.即使中间的属性不存在,也不会出现错误. "不存在的属性"的问题 如果你才刚开始读此教程并学习 ...
- ES2020新特性记录
1.可选链操作符 // oldlet ret = obj && obj.first && obj.first.second// newlet ret = obj?.fi ...
- es6之三个点(...)扩展运算符
我们看一个语法,你就知道es6对我们码农多友好,毕竟世界在进步 let arr=[1,2,3,4,54,56] console.log(...arr) 结果是????? 没错 ...这个运算符就是把这 ...
- Promise是什么?
一. Promise是什么? Promise是一种异步操作的解决方案,将写法复杂的传统的回调函数和监听事件的异步操作,用同步代码的形式表达出来. 避免了多级异步操作的回调函数嵌套. Promise最早 ...
- 个推TechDay参会感悟
上周六去参加了个推和FCC联合在梦想小镇举办的TechDay,当然是作为台下听讲选手参与的,想上去讲可惜实力他不允许啊,吹牛逼我在行,讲技术可就有点虚了,老老实实的坐在台下听大佬们的分享,当然由于买了 ...
- VS Code 成主宰、Vue 备受热捧!2019 前端开发趋势必读
前端在生产和开发中占据着越来越重要的地位,PC 端.手机端.桌面端.智能手表端等等设备都离不开前端的身影.本文将围绕框架.编程语言.工具.React.Vue 等方面,全面回顾 2019 年前端与 We ...
随机推荐
- Spring 设计模式介绍
JDK 中用到了那些设计模式?Spring 中用到了那些设计模式?这两个问题,在面试中比较常见.我在网上搜索了一下关于 Spring 中设计模式的讲解几乎都是千篇一律,而且大部分都年代久远.所以,花了 ...
- docker基本使用-安装
一. Linux服务器安装 1. 可参考官网安装步骤,点击前往官网 2. 常见问题 a. 在执行安装docker-ce命令的时候出错:requires containerd.io >= 1.2. ...
- Vue技术点整理-vue.config.js
1,proxy代理解决本地开发环境跨域问题 配置proxy代理后,proxy会将任何未知请求 (没有匹配到静态文件的请求) 代理到 https://192.168.3.49:8080 vue.conf ...
- java 文件转成pdf文件 预览
一.前端代码 //预览功能 preview: function () { //判断选中状态 var ids =""; var num = 0; $(".checkbox& ...
- Jenkins免密码登录
Jenkins免密码登录 相关内容原文地址: 简书:海边的卡夫卡丶:Jenkins免密码登录 昨天惊现一个神奇的问题,Jenkins无法登录,无论是初始化的账号密码,还是admin用户,都登录不进去了 ...
- SparkStreaming直连方式读取kafka数据,使用MySQL保存偏移量
SparkStreaming直连方式读取kafka数据,使用MySQL保存偏移量 1. ScalikeJDBC 2.配置文件 3.导入依赖的jar包 4.源码测试 通过MySQL保存kafka的偏移量 ...
- sudo 配置
在ubuntu中由于禁用了root用户,默认情况下会把安装系统时建立的用户添加到sudoers中. 但在redhat和centos中并没有把任何root用户之外的用户默认的添加到sudoers之中.这 ...
- MariaDB数据库 ----数据库简介,用户管理,数据库创建,数据类型、数据增删改(实例演示)
数据库简介 数据库--即电子文件柜,用户可以对文件中的数据进行增,删,改,查等操作. 数据库分类 关系型数据库 关系型数据库管理系统(Relational Database Management Sy ...
- shell (颜色输出)
摘自https://www.cnblogs.com/t-road/p/10257296.html #!/bin/bash # #下面是字体输出颜色及终端格式控制 #字体色范围:30-37 echo - ...
- 19.损坏磁盘阵列及修复&磁盘阵列+备份盘
1.在确认有一块物理硬盘设备出现损坏而不能继续正常使用后,应该使用mdadm 命令将其移除,然后查看RAID 磁盘阵列的状态,可以发现状态已经改变. [root@Centos ~]# mdadm /d ...