js常用操作

js可选链操作符(?.)和空值合并操作符(??)

可选链操作符(?.)用于访问可能为 null 或 undefined 的属性或方法,以避免出现错误。例如:

const person = {name: 'John',age: 30
};const jobTitle = person.job?.title; // 如果 person.job 存在,则返回 job 的 title 属性,否则返回 undefined

空值合并操作符(??)用于提供默认值。当左侧的值为 null 或 undefined 时,将返回右侧的值。例如:

const name = person.name ?? 'Unknown'; // 如果 person.name 存在且不为 null 或 undefined,则返回 person.name,否则返回 'Unknown'

结合使用可选链操作符和空值合并操作符的例子:

const jobTitle = person.job?.title ?? 'Unknown';

在这个例子中,如果 person 对象中没有 job 属性,或者 job 对象中的 title 属性为 null 或 undefined,那么 jobTitle 将会被赋值为 ‘Unknown’。这样我们可以安全地访问属性并提供默认值。

js常用方法

1:array.includes(element, start)

判断一个数组中是否包含某个元素,array是要进行检查的数组,element是要查找的元素,start是可选参数,表示开始查找的位置,默认为0。

const names = ["abc", "cba", "nba", "why", NaN]
console.log(names.includes(NaN)) // true

2:平方运算符

在ES7之前,计算数字的平方需要通过 Math.pow 方法来完成。在ES7中,增加了 ** 运算符,可以对数字来计算平方。

const result1 = Math.pow(3, 3)
const result2 = 3 ** 3
console.log(result1, result2)

3:Object values

之前我们可以通过 Object.keys 获取一个对象所有的key,在ES8中提供了 Object.values 来获取所有的value值。

const obj = {name: "why",age: 18,height: 1.88
}console.log(Object.values(obj)) // [ 'why', 18, 1.88 ]// 如果传入一个字符串
console.log(Object.values("abc")) // [ 'a', 'b', 'c' ]

4:Object entries

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

const obj = {name: "why",age: 18,height: 1.88
}console.log(Object.entries(obj)) // [ [ 'name', 'why' ], [ 'age', 18 ], [ 'height', 1.88 ] ]
for (const entry of Object.entries(obj)) {const [key, value] = entryconsole.log(key, value)
}// 如果是一个数组
console.log(Object.entries(["abc", "cba", "nba"])) // [ [ '0', 'abc' ], [ '1', 'cba' ], [ '2', 'nba' ] ]// 如果是一个字符串
console.log(Object.entries("abc")) // [ [ '0', 'a' ], [ '1', 'b' ], [ '2', 'c' ] ]

5:find()

find() 用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。

const numbers = [1, 2, 3, 4, 5];const result = numbers.find((num) => num > 3);console.log(result); // 输出:4

6: filter()

filter()方法创建一个包含所有通过测试函数的元素的新数组。如果没有元素满足测试函数,则返回一个空数组。

const numbers = [1, 2, 3, 4, 5];const result = numbers.filter(function(num) {return num > 3;
});console.log(result); // 输出:[4, 5]

7:some()

some 为数组中的每一个元素执行一次 callback 函数,直到找到一个使得 callback 返回一个“真值”(即可转换为布尔值 true 的值)。如果找到了这样一个值,some 将会立即返回 true。

const numbers = [1, 2, 3, 4, 5];const result = numbers.some(function(num) {return num > 3;
});console.log(result); // 输出:true

8:every()

every()方法用于检查数组中的所有元素是否都满足指定条件。它返回一个布尔值。

const numbers = [1, 2, 3, 4, 5];const result = numbers.every(function(num) {return num > 0;
});console.log(result); // 输出:true

9:map()

map()用于对数组中的每个元素执行指定操作,并返回一个新的数组,新数组的元素是对原数组元素操作后的结果。

const numbers = [1, 2, 3, 4, 5];const result = numbers.map(function(num) {return num * 2;
});console.log(result); // 输出:[2, 4, 6, 8, 10]

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

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

相关文章

【技巧】导出和导入Typecho的文章数据

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 背景介绍 1、要换服务器了,虽然Typecho和Theme都可以重装,但文章数据由于是存在数据库里的,所以需要额外一些操作才行。 2、在进行下面的数据导入导出之前,新服务器…

GitHub Copilot - Elasticsearch 和 MySQL 单表查询耗时比对

当单表数据库超过百万后,数据库 like %xxx% 查询明显变慢,为了对比 Elasticsearch 的效果,将百万级的测试数据导入到 Elasticsearch 中对比看看效果。导入和查询 Elasticsearch 的过程完全通过 GitHub Copilot Chat 辅助编码。 Elasticsearc…

3.0 kVrms电压隔离: ADUM162N0BRZ、ADUM163N1BRZ、ADUM1281CRZ、ADUM1285CRZ通用多通道隔离(数字隔离器)

一、ADUM162N、ADuM163N 集成故障安全和2、3个反向通道的鲁棒3.0 kV rms六通道数字隔离器 ADuM162N / ADuM163N 均为采用ADI公司iCoupler技术的6通道数字隔离器。这些隔离器件将高速、互补金属氧化物半导体(CMOS)与单芯片空芯变压器技术融为一体,具有优于光耦合器件…

源代码泄密困扰企业?上海迅软DSE助力解决问题

源代码是软件开发最重要的资源,同时也是开发人员思想、经验和工作的结晶。对于软件开发企业来说,实施有效的源代码防泄密措施至关重要,因为源代码文档和程序文档都具有极高的商业价值,属于企业的商业机密。 为了确保企业的源代码…

Java_Mybatis_缓存

缓存 1.概述 Mybatis 缓存:MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制 2.会话缓存(一级缓存) sqlSession 级别的,也就是说,使用同一个 sqlSession 查询同一 sql 时&#x…

YOLOv7独家原创改进:SPPF自研创新 | SPPF创新结构,重新设计全局平均池化层和全局最大池化层,增强全局视角信息和不同尺度大小的特征

💡💡💡本文原创自研创新改进:SPPF_improve利用全局平均池化层和全局最大池化层,加入一些全局背景信息和边缘信息,从而获取全局视角信息并减轻不同尺度大小所带来的影响 强烈推荐,适合直接使用,paper创新基本 💡💡💡 在多个数据集验证涨点,尤其对存在多个尺…

大模型的研究新方向:混合专家模型(MoE)

大模型的发展已经到了一个瓶颈期,包括被业内所诟病的罔顾事实而产生的“幻觉”问题、深层次的逻辑理解能力、数学推理能力等,想要解决这些问题就不得不继续增加模型的复杂度。随着不同应用场景的实际需求,大模型的参数会变得越来越大&#xf…

npm安装,idea中启动vue失败

node 设置配置之后,要查询时,会从.npmrc中读取路径 .npmrc自己创建的(默认情况下.npmrc会创建在C盘中) 我创建的在D:\studay-and-working\node16.14\node_modules\npm中 指定.npmrc文件,因为默认会访问C盘的.npmrc文件…

Docker 安装Apache Superset 并实现汉化和快速入门

什么是Apache Superset Apache Superset是一个现代化的企业级商业智能Web应用程序。Apache Superset 支持用户的各种数据类型可视化和数据分析,支持简单图饼图到复杂的地理空间图表。Apache Superset 是一个轻量级、简单化、直观化、可配置的BI 框架。 Docker 安…

【报错栏】(vue)Module not found: Error: Can‘t resolve ‘element-ui‘ in xxx

Module not found: Error: Cant resolve element-ui in xxx 报错原因是: 未安装 element-ui 依赖 解决: npm install element-ui 运行

Java研学-jdbc(二)

六 代码重构 对于需要反复编写的这种代码,可以将其抽取到工具类中,简化开发,以及将可能会修改的值抽取到properties文件中,解决硬编码的问题 工具类 public class JDBCUtil {private static Connection connectionnull;/*加载驱动…

C语言 二叉树详解(自我理解版)!!!二叉树的实现

目录 1.树的概念和结构(了解) 1.1树的概念 1.2关于树的每个组成结构的叫法 1.3树的结构体表示 1.4树在实际中的运用 2.二叉树的概念和结构和实现(本期偏重点之一) 二叉树的概念 ​编辑 特殊的二叉树 1.完全二叉树 2.满二…

Unity 实现单例模式

目录 基本概念 饿汉模式(推荐) 懒汉模式: 基本概念 单例模式:类只有一个实例,一般使用static来实现单例模式; 比如:有一个Test类,实现了单例,假设这个唯一的实例名为SingTonle,实例在类内被实现并被stat…

MAX/MSP SDK学习09:重要示例1

本示例涉及到单个MSP对象同时使用Signal类型、Message类型的入口;代理入口的使用。 注意:MSP对象的入口默认为代理入口,因此Signal类型、Message类型的数据都可接收; #include "ext.h" #include "ext_obex.h&…

【FPGA图像处理实战】- 图像行缓存设计实现方式一(FIFO)

图像处理中稍复杂点的算法,就需要行缓存,以实现3*3窗口、6*6窗口的数据计算。 本文将介绍使用FIFO来实现图像行缓存的设计,包括关键逻辑分析,源代码实现分享。 一、行缓存功能的设计框架 图像数据一般都是按照从左到右,从上到下,一行行数据的方式发送传输的。 这里以…

Java 重写(Override)与重载(Overload)的对比

Java中的重写(Override)和重载(Overload)是两种不同的方法重写/重载的概念。下面是重写和重载的对比及示例代码: 重写(Override) 重写是指在子类中重新定义父类中已有的方法,以便在子类中实现不同的行为。子类中的重写方法必须具有相同的方法名、参数列…

机器学习三个基本要素:优化算法

在确定了训练集 D、假设空间 ℱ 以及学习准则后,如何找到最优的模型𝑓(x,θ∗) 就成了一个最优化(Optimization)问题。机器学习的训练过程其实就是最优化问题的求解过程。 参数与超参数 在机器学习中,优化又可以分为参…

mybatis查询结果resultMap映射vo源码分析

概述 mybatis是一个常用的持久层框架;通常搭配mysql使用; 在将查询结果映射成一个复杂vo的时候,通常会用到resultMap,在其中嵌套association和collection等操作;将一个复杂查询拆分成简单查询; 在vo中的变…

数据云:数据基础设施的一小步,数字经济的一大步

随着数字经济的崛起,数据正成为推动社会发展和经济增长的核心要素。在这个数字化时代,数据已经被誉为新的生产要素,是数字经济发展的基础性资源和战略性资源。为了更好地支持数据的汇聚、流通和应用,数据基础设施迎来了一次重要的…

WSL 配置 Docker 内存和 CPU 资源限制

我用的电脑一共有40G内存,最近发现电脑重启后,VmmemWSL 进程很快就会占用一多半的内存(20G),电脑中有多个停止运行的容器,正常启动状态的只有一个 MySQL 服务,通过 docker stats 查看占用内存也…