【JS运算符/表达式】`?.` `??` `...` `,` `=` `||=` `?:`等运算符讲解

 运算符:除了以下demo代码的内容,其他不常用的就不写了

// 常用运算符:
// 最常用的 = + - * / > < >= <= && || 就不说了// 取余 %
console.log(10 % 3); // 1// 加法赋值运算符 +=
// let a = 1;
// console.log((a += 10)); // 11// 逻辑与赋值(&&=) 逻辑与赋值(x &&= y)运算仅在 x 为真值时为其赋值。
let a = 2
a &&= 10
console.log(a); // 10// 逻辑或赋值(||=) 逻辑或赋值(x ||= y)运算仅在 x 为假值时为其赋值。
// let a = 'sb'
// a ||= 10 // 10
// console.log(a); // sb// 空值合并运算符(??): 当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。
console.log(''??'77'); // ''
console.log(null ?? 'sb'); // sb
// 逻辑空赋值(??=):  仅在 x 是空值(null 或 undefined)时对其赋值。
// let a  = 0;
// a??=20
// console.log(a); // 0// 可选链运算符(?.) 使用?.访问对象深层的属性,可不用明确验证每个引用是否有效;
// obj.val?.prop;
// obj.val?.[expr];
// obj.func?.(args);
// let a = {
//   fn1() {
//     console.log("sb");
//   },
//   cat: "ming",
// };
// console.log(a.dog?.name, a.fn2?.());// ... 展开语法
// 数组 ...[1,2,3]  > 1,2,3
// 对象 let newObj = {...oldObj} // oldObj的键值对将会赋值给newObj对象
// 字符串  ...'hello' > 'h','e','l','l','o'
// 函数function fn(...data){} > data: [] //fn()传入多少个参数,data数组里就有多少个
// ...语法返回的是浅拷贝的数据。
console.log([...[1,2,3], '4', ...'hello', 6]);// 逗号运算符(,)
let x = (2, 'sb');
console.log(x); // 'sb'// 幂(**)运算符返回第一个操作数取第二个操作数的幂的结果。它等价于 Math.pow()
console.log(2**3); // 8// 条件(三元)运算符
console.log('' ? "问号前为true返回这个" : "否则返回这个");// 自减 -- : 前缀式 --x ; 后缀式 x--
// let a = 10;
// let b = a--; // 操作数会减一,然后返回减一之前的值
// console.log(a, b); // 9 10
// let b = --a; // 操作数会减一,然后返回减一之后的值。
// console.log(a, b); // 9 9// delete 运算符用于删除对象的一个属性
// let a = {name:'sb'}
// console.log(delete a.name,delete a.name11);// 一般不用在意返回值,在意的自己看文档;
// console.log(a.name);

表达式:

这部分先随便写写了,也不好整理成文章。仅当作自己的学习记录。

// async function 关键字可用于定义表达式中的异步函数。
async function fn1() {}// function* 关键字可用于在表达式中定义一个生成器函数。 generator 函数
// async function* 关键字可用于在表达式中定义一个异步生成器函数。
async function* foo() {yield await 1;yield await 2;yield await 3;
}
console.log(Object.prototype.toString.call(foo));
let str = 0;
async function generate() {for await (const val of foo()) {str = str + val;}console.log(str);
}
generate();
let sb = foo()
console.log(sb.next().then(res=>{console.log(res.value);}));
console.log(sb.next().then(res=>{console.log(res.value);}));
console.log(sb.next().then(res=>{console.log(res.value);}));
// yield 关键字用于暂停和恢复生成器函数。
// yield* 表达式用于委托给另一个 generator 或可迭代对象。

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

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

相关文章

力扣--动态规划1027.最长等差数列

思路分析&#xff1a; 使用动态规划的思想&#xff0c;定义二维数组dp&#xff0c;其中dp[i][j]表示以nums[i]为结尾&#xff0c;公差为(j-1000)的等差数列长度。为了适应负数的情况&#xff0c;将公差的范围设为[-1000, 1000]&#xff0c;并且加上1000作为数组索引。 初始化r…

Sentinel 注解支持

一、注解支持 Sentinel 提供了 SentinelResource 注解用于定义资源&#xff0c;并提供了 AspectJ 的扩展用于自动定义资源、处理 BlockException 等。使用 Sentinel Annotation AspectJ Extension 的时候需要引入以下依赖&#xff1a; <dependency><groupId>com.…

11:日志分析系统ELK|Elasticsearch|kibana

日志分析系统ELK&#xff5c;Elasticsearch&#xff5c;kibana 日志分析系统ELKELK概述Elasticsearch安装Elasticsearch部署Elasticsearch集群Elasticsearch插件 熟悉Elasticsearch的API调用_cat API创建 tedu 索引使用 PUT 方式增加数据查询数据修改数据删除数据 KibanaKibana…

锂电池SOC估计 | PyTorch实现基于Basisformer模型的锂电池SOC估计

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 PyTorch实现基于Basisformer模型的锂电池SOC估计 锂电池SOC估计&#xff0c;全新【Basisformer】时间序列预测 1.采用自适应监督自监督对比学习方法学习时序特征&#xff1b; 2.通过双向交叉注意力机制计算历史序列和…

BL、万科、中海地产、碧桂园、华润置地、佳兆业、金地商置、龙湖、绿城、融创、时代中国、旭辉、中国建筑校招笔试题

为了帮助应聘者更好地备战地产公司的招聘考试&#xff0c;我将介绍以下13套校招试题资料&#xff0c;涵盖了24 BL、24万科、24中海地产、碧桂园、华润置地、佳兆业、金地商置、龙湖、绿城、融创、时代中国、旭辉和中国建筑等知名房地产企业&#xff0c;为您提供全方位的备考资源…

提高移动应用的安全性:策略与实践

提高移动应用的安全性&#xff1a;策略与实践 随着移动应用的普及&#xff0c;安全性问题变得日益重要。用户数据保护、应用逻辑安全、以及防止恶意攻击都是开发者必须关注的重点。本文将探讨如何通过一系列策略和实践来提高移动应用的安全性。 1. 数据加密与保护 敏感数据加…

【CMake】(10) 变量操作

追加 追加操作允许你将新元素添加到现有的变量或列表中。 使用 set 进行变量追加 set 命令不仅可以用于定义变量,还可以用于修改变量的值,包括追加新值。下面是 set 命令用于追加操作的示例: cmake_minimum_required(VERSION 3.0) project(TEST)set(VAR "Hello&quo…

2024年环境安全科学、材料工程与制造国际学术会议(ESSMEM2024)

【EI检索】2024年环境安全科学、材料工程与制造国际学术会议&#xff08;ESSMEM2024) 会议简介 我们很高兴邀请您参加将在三亚举行的2024年环境安全科学、材料工程和制造国际学术会议&#xff08;ESSMEM 2024&#xff09;。 ESSMEM2024将汇集世界各国和地区的研究人员&…

BST基本性质,LeetCode 235. 二叉搜索树的最近公共祖先

一、题目 1、题目描述 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08…

李宏毅2023机器学习作业1--homework1——数据集操作

一、下载数据 下载训练数据covid.train.csv 测试数据covid.test.csv !wget -O covid_train.csv https://www.dropbox.com/s/lmy1riadzoy0ahw/covid.train.csv?dl0 !wget -O covid_test.csv https://www.dropbox.com/s/zalbw42lu4nmhr2/covid.test.csv?dl0 二、划分训练集和…

【Spring Boot 3】【JPA】@OneToMany 实现一对多单向关联

【Spring Boot 3】【JPA】@OneToMany 实现一对多单向关联 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学…

初识Lombok

前言 最近读一些公司的业务代码&#xff0c;发现近几年的java项目工程中都使用了lombok&#xff0c;lombok是一个可以自动生成get,set、toString等模板类方法的工具框架&#xff0c;程序再引入lombok后&#xff0c;添加一个注解便可以不写get\set\toString等方法。 Lombok示例…

计算机组成原理(15)----输入/输出系统

目录 一.I/O系统的基本概念 &#xff08;1&#xff09;I/O硬件 &#xff08;2&#xff09;I/O控制方式 1.程序查询方式 2.程序中断方式 3.DMA&#xff08;Direct Memory Access&#xff09;控制方式 4.通道控制方式 &#xff08;3&#xff09;I/O软件 1.I/O指令 2.通…

全志H713/H618方案:调焦电机(相励磁法步进电机)的驱动原理、适配方法

一、篇头 全志H713平台&#xff0c;作为FHD投影的低成本入门方案&#xff0c;其公板上也配齐了许多投影使用的模组&#xff0c;本文即介绍投影仪调焦所用的步进电机&#xff0c;此模组的驱动原理、配制方法、调试方法。因为条件限制&#xff0c;本文采用的是H618香橙派Z3平台&…

面试题vue

目录 vue的响应式原理 路由跳转与拦截 vue2和vue3的生命周期 watch和computed的区别 vue的响应式原理 数据变更&#xff0c;视图自动更新 使用Object.defineProperty()方法来监听属性的变化&#xff0c;实现双向数据绑定。Object.defineProperty()方法可以控制对象的属性访…

Linux-进程-007

1进程 1.1进程基本概念 程序&#xff1a;存放在外存中的一段数据组成的文件 进程&#xff1a;是一个程序动态执行的过程&#xff0c;包括进程的创建&#xff0c;进程的调度&#xff0c;进程的消亡1.2进程相关命令 1.2.1打开任务管理器 【top】&#xff1a;动态查看当前系统…

国企招聘考试------笔试资料-校园招聘

国企招聘考试一直备受广大求职者的关注&#xff0c;因为国企招聘通常具有稳定的岗位、优厚的福利待遇和广阔的发展空间&#xff0c;因此备战国企招聘考试成为许多求职者的重要任务。为了帮助求职者更好地准备国企招聘笔试&#xff0c;我将为你介绍这套校招试题资料。 国企招聘…

Win UI3开发笔记(四)设置主题

Win UI3设置主题过程 参考文章网址&#xff1a;https://blog.csdn.net/white_night_SZTU/article/details/132819719 核心代码&#xff1a; rootElement.RequestedTheme ElementTheme.Dark; //这和在前端设置控件的 RequestedTheme"Dark"属性是一样的结果&#xf…

TensorFlow中的分布式深度学习

在处理复杂问题和大规模深度学习问题时&#xff0c;分布式深度学习为我们提供了突破口。它允许我们利用多个设备和计算资源的力量&#xff0c;更好地训练我们的模型。讨论这个话题时&#xff0c;不得不提的是 TensorFlow&#xff0c;它通过 tf.distribute 包为分布式学习提供了…

Apriori 与 FP-growth 算法

关联规则挖掘:Apriori 与 FP-growth 算法 关联规则挖掘概述Apriori 算法基本原理应用实例FP-growth 算法基本原理应用实例其他机器学习算法:机器学习实战工具安装和使用关联规则挖掘是数据挖掘领域中的一个重要任务,旨在发现数据集中不同项之间的关联关系。Apriori 算法和 F…