js中各种运算符

news2024/11/28 5:26:02

文章目录

  • 扩展运算符:`...`
  • 逻辑运算符(&& 或 || )
    • 第一、&& (逻辑与)运算,看一个简单的例子:
    • 第二、|| (逻辑或)运算,看一个简单的例子:
    • 三、&& (逻辑与) 和||(逻辑或)混合使用:
  • 指数运算符(**)
  • 可选链运算符(?.)
  • 空值合并运算符(??)

扩展运算符:...

var o={a:1,b:2};
var obj={...o,b:3};

console.log(b); // {a:1,b:3}

对象会重写值。
参考:https://www.cnblogs.com/crazycode2/p/9063497.html

逻辑运算符(&& 或 || )

第一、&& (逻辑与)运算,看一个简单的例子:

var a = 1 && 2 && 3;
var b = 0 && 1 && 2;
var c = 1 && 0 && 2;
console.log(a);//值为3
console.log(b);//值为0
console.log(c);//值为0

运行的结果是 :3,0,0。

解析:

“&&” 运算遇到false就返回;

变量a的计算:因为1 && 2,1为真,返回2;2&&3, 2为真,返回3 。

变量b的计算:因为0 && 1,0为假,返回0,不再往下计算。

第二、|| (逻辑或)运算,看一个简单的例子:

var d = 0 || 1 || 2;
var e = 1 || 0 || 2;
var f = 1 || 2 || 0;

console.log(d);//值为1
console.log(e);//值为1
console.log(f);//值为1

解析:

“||”运算遇到true就返回;

变量d的计算:因为0 || 1,0为假,返回1;1 || 2, 1为真,返回1 。

变量e的计算:因为1 || 0,1为真,返回1,不再往下计算。

三、&& (逻辑与) 和||(逻辑或)混合使用:

var g =  1 && 2 || 3;

var h = 1 || 2 && 3;

var i = 0 || 2 && 3;

console.log(g);//值为2
console.log(h);//值为1 

console.log(h);//值为3

解析:

&& (逻辑与) 优先级高于||(逻辑或)

变量g的计算:因为1 && 2,1为真,返回2;2 || 3, 2为真,返回2 。

变量e的计算:等式看成 1 || (一个值),1为真,最终直接返回1,不需要计算后边的等式的值。

变量i的计算:因为2 && 3,2为真,返回3;0 || 3,0为假,返回3。

指数运算符(**)

问题:x的y次幂如何表示?
一、指数运算符(**)

console.log(2 ** 2); // 4
console.log(3 ** 2); // 9
console.log('3' ** '2'); // 9

二、Math.pow()

console.log(Math.pow(2, 2)); // 4
console.log(Math.pow(3, 2)); // 9
console.log(Math.pow('3', '2')); // 9

参考:https://www.cnblogs.com/mazey/p/8447098.html

可选链运算符(?.)

空值合并运算符(??)

在这里插入图片描述
最近出现的 a?.b 以及 a ?? b 语法编译报错是因为browserslist升级到4.21.0导致的,@babel/preset-env 依赖browserslist的配置来加载对应的插件,最近升级的 browserslist 4.21.0 把IE11标记为dead了,导致 > 1%, not dead, last 2 versions 这个条件不包括IE11,而其他浏览器最新版本都已经原生支持上述两个语法,所以@babel/preset-env就不加载转译上述语法的插件,原样输出对应的语法,而我们的devops上默认的node版本是12,不支持上述两种语法,导致报错

解决办法:
1、使用node16,上述两种语法都支持
2、手动配置 babel插件 plugins: [
‘@babel/plugin-proposal-nullish-coalescing-operator’,
‘@babel/plugin-proposal-optional-chaining’
]
3、配置 “browserslist”: [
“> 1%”,
“last 2 versions”,
“not dead”,
“IE 11”
],

相关链接:
https://github.com/vuejs/vue-cli/issues/7209
https://github.com/browserslist/browserslist/blob/4.21.0/CHANGELOG.md#421

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

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

相关文章

JMX vs JFR:谁才是最强大的JVM监控利器?

大家好,我是小米!今天我们来聊一聊JVM监控系统,特别是关于JMX和JFR的使用。你是否有过在线上应用出现性能问题时,无法准确获取关键指标的困扰呢?那么,不妨听听我给大家带来的解决方案。 什么是JMX 首先&a…

什么是CTF?打CTF的意义是什么?(附网络安全入门教程)

什么是CTF? CTF在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。它起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式&#xff0…

使用mkdocs快速部署上线静态站点到Github

背景 mkdocs是一种方便地生成站点的工具,相比hugo、hexo等个人博客而言,mkdocs更加简便、轻量级,可以快速帮助部署上线类似个人技术本(notebook,wiki)之类的站点。并且支持默认支持站点内搜索,…

网络安全自学路线

很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习,最终也只是会无疾而终!黑客是一个大的概念,里面包含了许多方向,不同的方向需要学习的内容也不一样。 算上从学校开始学习,已经在网安这条路上走…

基于ensp的mpls vpn跨域optionA方案(分公司之间不能互访但是能访问总部场景)

目录 一 实验拓扑 二 实验要求 三 实验分析 四 实验配置说明 4.1完成正常ip地址配置,ISP内部使用ospf协议和mpls ldp协议 4.2 PE和CE之间起ebgp邻居 4.3 PE和PE之间起mpbgp邻居 4.4 PE和CE、ASBR之间设置VRF来进行RT值的过滤,选择合适的RT值来完…

网络编程:TCP socket

文章目录 阅读前导 服务端定义日志框架成员属性服务端框架 初始化服务器创建套接字绑定开启监听 运行服务器netstat 工具获取连接和通信准备通信逻辑 单进程服务端函数(version1)telent 工具测试 多进程服务端(version2)创建子进程…

手把手教你学习IEC104协议和编程实现 十四-文件操作之目录操作

文件服务也算是最后一个系统的大章节了。早期的IEC104软件仅实现了基本的通讯,也就是我们常说的3遥,对于定值和文件的操作都很少提及。 首先我们先要看看文件都包含那些。 文件包含的内容 故障录波文件 故障录波文件我们单独开一章来讲解。包含通讯及文件的格式 历史数据…

多核系统内存假共享问题

多核处理器(SMP)系统中, 每一个处理器都有一个本地高速缓存。内存系统必须保证高速缓存的一致性。当不同处理器上的线程修改驻留再同一高速缓存中的变量时就会发生假共享(false sharing),结果导致高速缓存无效,并强制更…

长期封闭环境中与积极情绪相关的肠道菌群

谷禾健康 近年来,随着微生物群-肠-脑轴研究的深入,越来越多证据表明,微生物群-肠-脑轴在调节大脑功能方面发挥着关键作用,尤其是在情绪处理和行为方面。然而,肠道微生物群与长期封闭环境中的心理变化之间的相关性仍知之…

小魔推助力实体行业短视频创作,打爆UGC素人流量!

最近不止一次的和大家讲到UGC的玩法,相信很多朋友也有了一定的认知,UGC简单来说,就是通过用户来生产原创内容,通过实体店的门头、环境、特色服务等相关内容,并且带有门店地址发布,就可以提升实体商家的POI热…

tensorrt

【TensorRT】动态batch进行推理_tensorrt 动态batch_there2belief的博客-CSDN博客 https://www.cnblogs.com/harrymore/p/15387117.html 1.动态batch 2.tensor内存管理 3.

《河北教育》期刊简介及投稿邮箱

《河北教育》期刊简介及投稿邮箱 主管单位:河北省教育厅 主办单位:河北省教育宣传中心 国际刊号ISSN:1004-6208;国内刊号CN:13-1036/G4;邮发代号:18-67 出版周期:月刊 出版地:河北省石家庄…

pytorch中backward()函数与gradient 参数详解

矩阵乘法的例子1 以下例来说明backward中参数gradient的作用 注意在本文中表示矩阵乘法,*表示对应元素相乘 求A求偏导 试运行代码1 import torch# [1,2][2*3][1,3] A torch.tensor([[1., 2.]], requires_gradTrue) B torch.tensor([[10., 20., 30.], [100., 20…

『赠书活动 | 第五期』《人工智能数学基础》

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 『赠书活动 | 第五期』 本期书籍:《人工智能数学基础》 赠书规则:评论区:点赞|收藏|留言 评论…

DAP-seq技术鉴定葡萄MADS-box转录因子VvMADS28的靶基因,揭示葡萄胚珠发育的调控机制

葡萄是一种营养丰富、美味可口的水果,深受世界各地消费者的喜爱。近年来,无籽葡萄也越来越受大家的欢迎,因此,无籽葡萄品种的培育成为一个重要的育种目标,而了解葡萄种子发育的分子遗传调控机制对于无籽栽培品种的培育…

Kyligence Zen 产品体验-好用的指标平台

文章目录 一、Kyligence Zen概念一、BI发展历史1.以报表为核心的IT响应式服务2.以宽表为核心的自助可视化分析3.以指标为核心的可视化分析、增强分析 二、什么是Kyligence Zen?1.官网的介绍2.个人的理解 二、产品体验一、创建账号二、指标1.直接创建指标2.导入指标数…

postgresql集群编译安装

postgreSQL集群部署1环境准备(三台服务器全部执行) 2.1.1 准备三台虚拟机 服务器名称 服务器IP 描述 Pgsql-0 xxx.xxx.xxx.xxx master节点 Pgsql-1 xxx.xxx.xxx.xxx slave1节点 Pgsql-2 xxx.xxx.xxx.xxx slave2节点 2.1.2 安装编译需要的相…

ANR实战案例 - 通用方法总结

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录 系列文章目录前言一、业务耗时1.登录Dialog优化2.子线程更新通知栏 二、频繁调用1.底部Tab资源初始…

【LLM系列之LLaMA】LLaMA: Open and Efficient Foundation Language Models

论文题目:《LLaMA: Open and Efficient Foundation Language Models》 论文链接:https://arxiv.org/pdf/2302.13971.pdf github链接:https://github.com/facebookresearch/llama/tree/main huggingface链接:https://huggingface.c…

[离散数学] 函数

文章目录 函数判断函数的条件复合函数复合函数的性质 逆函数 函数 判断函数的条件 dom F A ⇔ \Leftrightarrow ⇔所有x 都有 F&#xff08;x&#xff09;与之对应 有唯一的与其对应 < x , y > ∈ f ∧ < y , z > ∈ f ⇒ y z <x,y>\in f \land <y,z…