ES6~ES12——Array Includes、Object values、Object entries、Object fromEntries、flat、flatMap、空值合并运算符、可选链等

一、ES7 - Array Includes

在ES7之前,如果我们想判断一个数组中是否包含某个元素,需要通过 indexOf 获取结果,并且判断是否为 -1。

在ES7中,我们可以通过includes来判断一个数组中是否包含一个指定的元素,根据情况,如果包含则返回 true,否则返回false。
在这里插入图片描述
在这里插入图片描述

二、ES7 –指数(乘方) exponentiation运算符

在ES7之前,计算数字的乘方需要通过 Math.pow 方法来完成。

在ES7中,增加了 ** 运算符,可以对数字来计算乘方。
在这里插入图片描述

三、ES8 Object values

之前我们可以通过 Object.keys 获取一个对象所有的key,在ES8中提供了 Object.values 来获取所有的value值:
在这里插入图片描述

四、ES8 Object entries

通过Object.entries 可以获取到一个数组,数组中会存放可枚举属性的键值对数组

在这里插入图片描述

五、ES8 - String Padding

某些字符串我们需要对其进行前后的填充,来实现某种格式化效果,ES8中增加了 padStart 和 padEnd 方法,分别是对字符串的首尾进行填充的。

在这里插入图片描述

六、ES8 - Trailing Commas

在ES8中,我们允许在函数定义和调用时多加一个逗号:
在这里插入图片描述

七、ES8 - Object Descriptors

获取一个对象的所有属性描述符
在这里插入图片描述

八、ES10 - flat flatMap

flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
在这里插入图片描述

flatMap() 方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。

  • 注意一:flatMap是先进行map操作,再做flat的操作;
  • 注意二:flatMap中的flat相当于深度为1;
    在这里插入图片描述

九、ES10 - Object fromEntries

在前面,我们可以通过 Object.entries 将一个对象转换成 entries,那么如果我们有一个entries了,如何将其转换成对象呢?

  • ES10提供了 Object.formEntries来完成转换:
    在这里插入图片描述
    那么这个方法有什么应用场景呢?
    在这里插入图片描述

十、ES10 - trimStart trimEnd

去除一个字符串首尾的空格,我们可以通过trim方法,如果单独去除前面或者后面呢?

  • ES10中给我们提供了trimStart和trimEnd;
    在这里插入图片描述

十一、ES11 - BigInt

在早期的JavaScript中,我们不能正确的表示过大的数字:

  • 大于MAX_SAFE_INTEGER的数值,表示的可能是不正确的。

那么ES11中,引入了新的数据类型BigInt,用于表示大的整数:

  • BigInt的表示方法是在数值的后面加上n
    在这里插入图片描述

十二、ES11 - Nullish Coalescing Operator

注意:在之前,我们用const bar = foo || "default value"这种方式来判断是存在问题的:并不能完全达到要求(只有foo为undefined或者null时才赋予foo默认值)
比如:下面这种foo初始值为空的情况下,我们本来期望的是foo为空,但是却被赋予了默认值!
在这里插入图片描述
但是ES11,Nullish Coalescing Operator增加了空值合并操作符就不会存在这种问题:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

十三、ES11 - Optional Chaining

可选链也是ES11中新增一个特性,主要作用是让我们的代码在进行null和undefined判断时更加清晰和简洁:
在这里插入图片描述

十四、ES11 - Global This

在之前我们希望获取JavaScript环境的全局对象,不同的环境获取的方式是不一样的

  • 比如在浏览器中可以通过this、window来获取;
  • 比如在Node中我们需要通过global来获取;

那么在ES11中对获取全局对象进行了统一的规范:globalThis
在这里插入图片描述

十五、ES11 - for…in标准化

在ES11之前,虽然很多浏览器支持for…in来遍历对象类型,但是并没有被ECMA标准化。

在ES11中,对其进行了标准化,for…in是用于遍历对象的key的:
在这里插入图片描述

十六、ES12 - FinalizationRegistry

FinalizationRegistry 对象可以让你在对象被垃圾回收时请求一个回调。

  • FinalizationRegistry 提供了这样的一种方法:当一个在注册表中注册的对象被回收时,请求在某个时间点上调用一个清理回调。(清理回调有时被称为 finalizer );
  • 你可以通过调用register方法,注册任何你想要清理回调的对象,传入该对象和所含的值;
    在这里插入图片描述

十七、ES12 - WeakRefs

如果我们默认将一个对象赋值给另外一个引用,那么这个引用是一个强引用:

  • 如果我们希望是一个弱引用的话,可以使用WeakRef;
    在这里插入图片描述

十八、ES12 - logical assignment operators 逻辑赋值运算

// 1.||= 逻辑或赋值运算
// let message = undefined
// message = message || "default value"
// message ||= "default value"
// console.log(message) // default value// 2.&&= 逻辑与赋值运算
// &&
// const obj = {
//   name: "why",
//   foo: function() {
//     console.log("foo函数被调用")
//
//   }
// }
// obj.foo && obj.foo()// &&=
let info = {name: "why"
}// // 1.判断info
// 2.有值的情况下, 取出info.name
// info = info && info.name
info &&= info.name
console.log(info) // why// 3.??= 逻辑空赋值运算
let message = 0
message ??= "default value"
console.log(message) // 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

移除通知的时机

链接 结论 最好是在不需要的时候就移除掉。 如果不是特别苛刻,可以直接在dealloc函数里写。因为dealloc函数一定会被调用的。 在dealloc函数中移除的可能问题 由于dealloc在Runloop结束时会被调用。如果在Runloop调用之前,又有一个通知到来,会…

谷歌浏览器有哪些好看的主题_Kibou 简洁的Typecho主题

一款基于 Bootstrap 的单栏的简洁的自适应Typecho主题。这是一款开发于17年的Typecho主题,如果您喜欢简洁的单栏主题,那么这款主题会是您不错的选择Kibou 是一款基于 Bootstrap 的单栏的简洁的自适应Typecho主题。这是一款开发于17年的Typecho主题,如果您喜欢简洁的…

JS高级——Proxy、Reflect

一、监听对象的操作 我们先来看一个需求:有一个对象,我们希望监听这个对象中的属性被设置或获取的过程 通过我们前面所学的知识,能不能做到这一点呢?其实是可以的,我们可以通过之前的属性描述符中的存储属性描述符来…

python为什么不会溢出_深入分析python中整型不会溢出问题

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

Promise学习笔记

一、异步任务的处理 这里我从一个实际的例子来作为切入点: 我们调用一个函数,这个函数中发送网络请求(我们可以用定时器来模拟);如果发送网络请求成功了,那么告知调用者发送成功,并且将相关数…

实验代做 行人识别_实验室代做实验项目

实验室代做实验项目一、分子生物学检测服务1、 引物设计合成(人、大鼠、小鼠、兔等)2、 基因表达水平检测、内参检测3、 SNP检测服务4、 甲基化检测服务5、 测序技术服务6、 芯片检测(全基因、MicroRNA)7、 染色体分析二、病理形态学检测1、 HE、特殊染色(PAS、MASSON等)2、 电…

Java学习笔记之:Java引用数据类型之字符串

一、简介 字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串。 创建字符串最简单的方式如下: String greeting "Hello world!"; 在代码中遇到字符串常量时,这里的值是"Hello world!&…

JS高级——Iterator迭代器、Generator生成器

一、什么是迭代器? 在JavaScript中,迭代器也是一个具体的对象,这个对象需要符合迭代器协议(iterator protocol): 迭代器协议定义了产生一系列值(无论是有限还是无限个)的标准方式&…

删除一行下方单元格上移_快速删除Excel工作表多余空单元格

从其他地方复制了数据,有时候会出现多余的空单元格。手动删除很麻烦,就像下面的图中的工作表区域。下面介绍一种方法,可以快速删除多余空单元格。1.选中目标区域,在这里就选中A1:A9的单元格区域。2.按键盘上的F5或者CtrlG。3.点击…

php的memcache安装,在window10下面

1.memcached-win对应得安装包 2.解压,可以放到任意目录,以管理员身份打开cmd 3.在安装的目录下面,执行如下命令memcached.exe -d install 安装Memcached.exe –d start 开启服务Memcahced.exe –d stop 停止服务Memcached.exe –d rest…

JS高级——await-async

一、异步函数 async function async关键字用于声明一个异步函数: async是asynchronous单词的缩写,异步、非同步;sync是synchronous单词的缩写,同步、同时; async异步函数可以有很多中写法: 二、异步函…

图象关于y轴对称是什么意思_数学概念丨“图象”与“图像”是有区别的 ,你知道吗?...

你与数学间只差一个公众号解读教材教法,研究解题策略,传播数学文化,推广数学应用,推送知识干货,分享学习方法。精彩分享初一数学全国各地期中试卷150套,word版初二数学全国各地期中试卷150套,wo…

数据压缩 第二次作业

1.设X是一个随机变量&#xff0c;取值范围是一个包含M个字母的符号集。证明0<H(X)<log2M。 2.证明如果观察到一个序列的元素为iid分布&#xff0c;则该序列的熵等于一阶熵。 3.给定符号集A{a1,a2,a3,a4},求以下条件下的一阶熵&#xff1a; (a) p(a1)p(a2)p(a3)p(a4)1/4 (…

JS高级——错误处理

一、错误处理方案 开发中我们会封装一些工具函数&#xff0c;封装之后给别人使用&#xff1a; 在其他人使用的过程中&#xff0c;可能会传递一些参数&#xff1b;对于函数来说&#xff0c;需要对这些参数进行验证&#xff0c;否则可能得到的是我们不想要的结果&#xff1b; …

k1658停运到什么时候_春节网购别被商家忽悠!春节快递不停运,但价格会和平时不一样...

现在临春节已经越来越近了&#xff0c;这些天也是网购订单大幅度增长的时间&#xff0c;因为年底的时候很多人的网购需求都爆发了&#xff0c;会想着买各种东西到家&#xff0c;包括年货的置办。也就是在这种时候&#xff0c;很多网店过年的时候都会休息&#xff0c;但是也有一…

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

一&#xff1a;如何去学习&#xff1f;都去学习什么&#xff1f; 1&#xff1a;学习优秀项目的设计思想&#xff0c;多问几个为什么&#xff0c;为什么要这么设计&#xff0c;这么设计的好处是什么&#xff0c;还能不能在优化 &#xff0c;如何应用到自己的项目中 2&#xff1a…

JS高级——模块化学习笔记

一、什么是模块化&#xff1f; 到底什么是模块化、模块化开发呢&#xff1f; 事实上模块化开发最终的目的是将程序划分成一个个小的结构&#xff1b;这个结构中编写属于自己的逻辑代码&#xff0c;有自己的作用域&#xff0c;不会影响到其他的结构&#xff1b;这个结构可以将…

python notebooks_Jupyter Notebooks安装及入门

1.Jupyter Notebooks 是什么&#xff1f;Jupyter Notebooks 是一款开源的网络应用&#xff0c;我们可以将其用于创建和共享代码与文档。其提供了一个环境&#xff0c;你无需离开这个环境&#xff0c;就可以在其中编写你的代码、运行代码、查看输出、可视化数据并查看结果。因此…

JS高级——JSON、数据存储学习笔记

在目前的开发中&#xff0c;JSON是一种非常重要的数据格式&#xff0c;它并不是编程语言&#xff0c;而是一种可以在服务器和客户端之间传输的数据格式。 JSON的全称是JavaScript Object Notation&#xff08;JavaScript对象符号&#xff09;&#xff1a; JSON是由Douglas Cro…

beautifulsoup获取属性_Python爬虫常用模块:BeautifulSoup

BeautifulSoup用途 BeautifulSoup 借助网页的结构和属性等特性来解析网页&#xff0c;可以用它来方便地从网页中提取所需信息。 BeautifulSoup自动将输入文档转换为Unicode编码&#xff0c;输出文档转换为UTF-8编码。BeautifulSoup依赖于解析器 它除了支持Python标准库中的HTML…