【Java 进阶篇】JavaScript二元运算符详解

在这里插入图片描述

JavaScript是一门多用途的编程语言,它支持各种运算符,包括二元运算符。二元运算符用于执行两个操作数之间的操作,这两个操作数通常是变量、值或表达式。在本篇博客中,我们将详细探讨JavaScript的二元运算符,包括它们的种类、用法以及示例。

什么是二元运算符?

在JavaScript中,二元运算符是一种需要两个操作数的运算符。操作数可以是变量、值或表达式,它们之间的操作由运算符决定。JavaScript中有许多不同的二元运算符,涵盖了各种数学、逻辑和比较操作。

算术运算符

算术运算符用于执行数学运算,包括加法、减法、乘法、除法和取模等操作。以下是JavaScript中常见的算术运算符:

  • 加法(+):用于将两个数相加。
let sum = 5 + 3; // sum 的值是 8
  • 减法(-):用于将一个数减去另一个数。
let difference = 10 - 4; // difference 的值是 6
  • 乘法(*):用于将两个数相乘。
let product = 6 * 7; // product 的值是 42
  • 除法(/):用于将一个数除以另一个数。
let quotient = 20 / 4; // quotient 的值是 5
  • 取模(%):用于获取一个数除以另一个数的余数。
let remainder = 10 % 3; // remainder 的值是 1
  • 自增(++):用于将一个变量的值增加1。
let x = 5;
x++; // 等同于 x = x + 1;
// 现在 x 的值是 6
  • 自减(–):用于将一个变量的值减少1。
let y = 8;
y--; // 等同于 y = y - 1;
// 现在 y 的值是 7

赋值运算符

赋值运算符用于将右侧的值分配给左侧的变量。JavaScript中的常见赋值运算符包括:

  • 赋值(=):将右侧的值赋给左侧的变量。
let a = 10;
  • 加法赋值(+=):将右侧的值与左侧的变量相加,并将结果赋给左侧的变量。
let b = 5;
b += 3; // 等同于 b = b + 3;
// 现在 b 的值是 8
  • 减法赋值(-=):将右侧的值从左侧的变量中减去,并将结果赋给左侧的变量。
let c = 7;
c -= 2; // 等同于 c = c - 2;
// 现在 c 的值是 5
  • 乘法赋值(*=):将右侧的值与左侧的变量相乘,并将结果赋给左侧的变量。
let d = 4;
d *= 6; // 等同于 d = d * 6;
// 现在 d 的值是 24
  • 除法赋值(/=):将左侧的变量除以右侧的值,并将结果赋给左侧的变量。
let e = 30;
e /= 3; // 等同于 e = e / 3;
// 现在 e 的值是 10
  • 取模赋值(%=):将左侧的变量除以右侧的值的余数,并将结果赋给左侧的变量。
let f = 13;
f %= 5; // 等同于 f= f % 5;
// 现在 f 的值是 3

比较运算符

比较运算符用于比较两个值,并返回一个布尔值(true或false)。以下是JavaScript中常见的比较运算符:

  • 相等(==):用于检查两个值是否相等。如果值相等,则返回true,否则返回false。
let isEqual = 5 == 5; // isEqual 的值是 true
  • 不相等(!=):用于检查两个值是否不相等。如果值不相等,则返回true,否则返回false。
let isNotEqual = 3 != 8; // isNotEqual 的值是 true
  • 全等(===):用于检查两个值是否全等,包括值和数据类型。如果值和数据类型都相等,则返回true,否则返回false。
let isStrictEqual = 5 === "5"; // isStrictEqual 的值是 false
  • 不全等(!==):用于检查两个值是否不全等。如果值或数据类型不相等,则返回true,否则返回false。
let isNotStrictEqual = 10 !== "10"; // isNotStrictEqual 的值是 true
  • 大于(>):用于检查一个值是否大于另一个值。如果第一个值大于第二个值,则返回true,否则返回false。
let isGreaterThan = 15 > 8; // isGreaterThan 的值是 true
  • 小于(<):用于检查一个值是否小于另一个值。如果第一个值小于第二个值,则返回true,否则返回false。
let isLessThan = 3 < 7; // isLessThan 的值是 true
  • 大于或等于(>=):用于检查一个值是否大于或等于另一个值。如果第一个值大于或等于第二个值,则返回true,否则返回false。
let isGreaterOrEqual = 20 >= 20; // isGreaterOrEqual 的值是 true
  • 小于或等于(<=):用于检查一个值是否小于或等于另一个值。如果第一个值小于或等于第二个值,则返回true,否则返回false。
let isLessOrEqual = 5 <= 4; // isLessOrEqual 的值是 false

逻辑运算符

逻辑运算符用于执行逻辑操作,通常用于布尔值。以下是JavaScript中常见的逻辑运算符:

  • 逻辑与(&&):用于同时检查两个条件是否都为true。如果两个条件都为true,则返回true,否则返回false。
let isBothTrue = true && true; // isBothTrue 的值是 true
  • 逻辑或(||):用于检查两个条件中是否至少有一个为true。如果至少有一个条件为true,则返回true,否则返回false。
let isEitherTrue = true || false; // isEitherTrue 的值是 true
  • 逻辑非(!):用于反转条件的值。如果条件为true,则返回false;如果条件为false,则返回true。
let isNotTrue = !true; // isNotTrue 的值是 false

位运算符

位运算符用于操作变量的二进制位。它们通常用于处理数字的底层二进制表示。以下是JavaScript中常见的位运算符:

  • 按位与(&):用于将两个数的二进制位进行按位与操作。
let bitwiseAnd = 5 & 3; // bitwiseAnd 的值是 1
  • 按位或(|):用于将两个数的二进制位进行按位或操作。
let bitwiseOr = 5 | 3; // bitwiseOr 的值是 7
  • 按位异或(^):用于将两个数的二进制位进行按位异或操作。
let bitwiseXor = 5 ^ 3; // bitwiseXor 的值是 6
  • 按位非(~):用于将一个数的二进制位进行按位非操作,将0变为1,将1变为0。
let bitwiseNot = ~5; // bitwiseNot 的值是 -6
  • 左移(<<):用于将一个数的二进制位向左移动指定数量的位数。
let leftShift = 4 << 2; // leftShift 的值是 16
  • 右移(>>):用于将一个数的二进制位向右移动指定数量的位数。
let rightShift = 16 >> 2; // rightShift 的值是 4
  • 无符号右移(>>>):用于将一个数的二进制位向右移动指定数量的位数,但不保留符号位。
let unsignedRightShift = -1 >>> 1; // unsignedRightShift 的值是 2147483647

条件运算符

条件运算符(也称为三元运算符)用于根据条件的结果选择不同的值。它的语法是 condition ? expr1 : expr2,其中 condition 是一个条件表达式,如果条件为true,则返回 expr1 的值,否则返回 expr2 的值。

let age = 20;
let message = age >= 18 ? "成年人" : "未成年人";
// message 的值是 "成年人"

运算符的优先级

在JavaScript中,不同类型的运算符有不同的优先级。如果表达式中有多个运算符,它们将按照一定的顺序执行。以下是一些常见运算符的优先级,从高到低:

  1. 小括号 ():用于分组表达式,具有最高优先级。
  2. 递增/递减运算符 ++--:紧随括号后,具有高优先级。
  3. 一元运算符 +-!~:紧随递增/递减运算符,具有高优先级。
  4. 乘法、除法、取模 */%:从左到右具有中等优先级。
  5. 加法和减法 +-:从左到右具有较低优先级。
  6. 位移运算符 <<>>>>>:从左到右具有较低优先级。
  7. 按位与 &:从左到右具有较低优先级。
  8. 按位异或 ^:从左到右具有较低优先级。
  9. 按位或 |:从左到右具有较低优先级。
  10. 比较运算符 <><=>=:从左到右具有较低优先级。
  11. 相等运算符 ==!====!==:从左到右具有较低优先级。
  12. 逻辑与 &&:从左到右具有较低优先级。
  13. 逻辑或 ||:从左到右具有较低优先级。
  14. 三元条件运算符 ? ::从右到左具有较低优先级。
  15. 赋值运算符 =+=-= 等:从右到左具有最低优先级。

示例代码

下面是一些示例代码,演示了JavaScript中二元运算符的用法:

// 算术运算符示例
let addition = 5 + 3; // 8
let subtraction = 10 - 4; // 6
let multiplication = 6 * 7; // 42
let division = 20 / 4; // 5
let modulus = 10 % 3; // 1
let increment = 5;
increment++; // 6
let decrement = 8;
decrement--; // 7// 赋值运算符示例
let assign = 10; // 10
assign += 3; // 13
assign -= 2; // 11
assign *= 6; // 66
assign /= 3; // 22
assign %= 5; // 2// 比较运算符
let isEqual = 5 == 5; // true
let isNotEqual = 3 != 8; // true
let isStrictEqual = 5 === "5"; // false
let isNotStrictEqual = 10 !== "10"; // true
let isGreaterThan = 15 > 8; // true
let isLessThan = 3 < 7; // true
let isGreaterOrEqual = 20 >= 20; // true
let isLessOrEqual = 5 <= 4; // false// 逻辑运算符示例
let logicalAnd = true && true; // true
let logicalOr = true || false; // true
let logicalNot = !true; // false// 位运算符示例
let bitwiseAnd = 5 & 3; // 1
let bitwiseOr = 5 | 3; // 7
let bitwiseXor = 5 ^ 3; // 6
let bitwiseNot = ~5; // -6
let leftShift = 4 << 2; // 16
let rightShift = 16 >> 2; // 4
let unsignedRightShift = -1 >>> 1; // 2147483647// 条件运算符示例
let age = 20;
let message = age >= 18 ? "成年人" : "未成年人"; // "成年人"

结论

JavaScript的二元运算符是执行各种操作的重要工具。它们包括算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符和条件运算符。了解如何正确使用这些运算符对于编写有效的JavaScript代码至关重要。

希望这篇博客对您有所帮助,让您更好地理解JavaScript中的二元运算符以及它们的用法。如果您对JavaScript有更多疑问,可以继续学习更多关于这门强大编程语言的知识。

作者信息

作者 : 繁依Fanyi
CSDN: https://techfanyi.blog.csdn.net
掘金:https://juejin.cn/user/4154386571867191

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

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

相关文章

设计模式-状态模式

介绍 一个对象有状态变化每次状态变化都会触发一个逻辑不能总是用if else来控制 示例 交通信号灯不同颜色的变化 UML类图 传统UML类图 简化后的UML类图 代码演示 // 状态&#xff08;红灯、绿灯、黄灯&#xff09; class State {constructor(color) {this.color col…

A股风格因子看板 (2023.10 第04期)

该因子看板跟踪A股风格因子&#xff0c;该因子主要解释沪深两市的市场收益、刻画市场风格趋势的系列风格因子&#xff0c;用以分析市场风格切换、组合风格暴露等。 今日为该因子跟踪第04期&#xff0c;指数组合数据截止日2023-09-30&#xff0c;要点如下 近1年A股风格因子检验统…

一站式解决方案:Qt 跨平台开发灵活可靠

一站式解决方案&#xff1a;Qt 跨平台开发灵活可靠 Qt 是一种跨平台开发工具&#xff0c;为开发者提供了一站式解决方案。无论您的项目目标是 Windows、Linux、macOS、嵌入式系统还是移动平台&#xff0c;Qt 都能胜任。这种跨平台的特性不仅节省开支&#xff0c;还推动了战略的…

CTF Misc(3)流量分析基础以及原理

前言 流量分析在ctf比赛中也是常见的题目&#xff0c;参赛者通常会收到一个网络数据包的数据集&#xff0c;这些数据包记录了网络通信的内容和细节。参赛者的任务是通过分析这些数据包&#xff0c;识别出有用的信息&#xff0c;例如登录凭据、加密算法、漏洞利用等等 工具安装…

【SQL】MySQL中的索引,索引优化

索引是存储引擎用来快速查询记录的一种数据结构&#xff0c;按实现方式主要分为Hash索引和B树索引。 按功能划分&#xff0c;主要有以下几类 单列索引指的是对某一列单独建立索引&#xff0c;一张表中可以有多个单列索引 1. 单列索引 - 普通索引 创建索引&#xff08;关键字i…

基于SpringBoot的城镇保障性住房管理系统

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 房屋类型管理 房源信息管理 房源申请管理 住房分配 房源申请 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上…

Exposure Normalization and Compensation for Multiple-Exposure Correction 论文阅读笔记

这是CVPR2022的一篇曝光校正的文章&#xff0c;是中科大的。一作作者按同样的思路&#xff08;现有方法加一个自己设计的即插即用模块以提高性能的思路&#xff09;在CVPR2023也发了一篇文章&#xff0c;名字是Learning Sample Relationship for Exposure Correction。 文章的…

新闻软文稿件媒体发布怎么做?纯干货

新闻软文稿件需要投放在正确的媒体上&#xff0c;才能获得更好的宣传推广效果&#xff0c;新闻软文稿件媒体发布怎么做&#xff1f;今天伯乐网络传媒就来给大家讲解一下&#xff0c;纯干货&#xff0c;建议收藏起来慢慢看。 一、媒体选择与分析 1. 确定目标媒体 在进行新闻软…

【USRP】NI PCIe-8371

什么是 NI PCIe-8371 PXI远程控制设备。 x4 Gen1 PCI Express主机&#xff0c;832 MB/s&#xff0c;铜缆MXI-Express设备&#xff0c;用于PXI远程控制—PCIe‑8371是一款MXI‑Express远程控制器&#xff0c;用于控制通过有线PCI连接到计算机PCI Express插槽的设备或系统。 当…

XLSX.utils.sheet_to_json()解析excel,给空的单元格赋值为空字符串

前言 今天用到XLSX来解析excel文件&#xff0c;调用XLSX.utils.sheet_to_json(worksheet)&#xff0c;发现如果单元格为空的话&#xff0c;解析出来的结果&#xff0c;就会缺少相应的key&#xff08;如图所示&#xff09;。但是我想要单元格为空的话&#xff0c;值就默认给空字…

车载通信架构 —— DDS协议介绍

车载通信架构 —— DDS协议介绍 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消耗你的人和…

扒一扒集成运放uA741的内部电路

uA741是一款常见的集成运放芯片,这个是uA741的内部电路。 Q1与Q2组成的差动对是整个741运算放大器的输入端,这两个三极管是射极跟随器的连接方式,特点是输入电阻大,输出电阻小。 Q1和Q2的输出接至共基极组态的PNP晶体管Q3和Q4

JS VUE 用 canvas 给图片加水印

最近写需求&#xff0c;遇到要给图片加水印的需求。 刚开始想的方案是给图片上覆盖一层水印照片&#xff0c;但是这样的话用户直接下载图片水印也会消失。 后来查资料发现用 canvas 就可以给图片加水印&#xff0c;下面是处理过程。 首先我们要确认图片的格式&#xff0c;我们通…

缓存的力量:提升API性能和可扩展性

缓存是将频繁访问的数据或资源存储在临时存储位置(例如内存或磁盘)的过程&#xff0c;以提高检索速度并减少重复处理的需要。 缓存的好处 提高性能&#xff1a;缓存消除了每次从原始源检索数据的需要&#xff0c;从而提高了响应时间并减少了延迟。减少服务器负载&#xff1a;通…

python安装geopy出现错误

python&#xff1a; 安装geopy出现错误 错误信息&#xff1a; 解决办法&#xff1a;再试一次 居然成功了&#xff0c;就是说&#xff0c;也不知道为什么

企架布道:中电金信应邀出席2023佛山敏捷之旅暨DevOps Meetup

近日&#xff0c;2023佛山敏捷之旅暨DevOps Meetup活动顺利举行&#xff0c;本次活动以助力大湾区金融和互联网企业敏捷DevOps实施和效能提升为主题&#xff0c;共设立 2个会场&#xff0c;16个话题分享&#xff0c;200余位金融、互联网企业相关从业人员齐聚一堂&#xff0c;共…

软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计

1.数据库的基本概念 1.1数据库的体系结构 1.1.1常见数据库 ①集中式数据库 数据是集中的&#xff1b;数据管理是集中的 ②C/S结构 客户端负责数据表服务&#xff1b;服务器负责数据库服务&#xff1b;系统分前后端&#xff1b;ODBC、JDBC ③分布式数据库 物理上分布、逻…

【Python深度学习】目标检测和语义分割的区别

在计算机视觉领域&#xff0c;语义分割和目标检测是两个关键的任务&#xff0c;它们都是对图像和视频进行分析&#xff0c;但它们之间存在着明显的区别。本文将通过图像示例&#xff0c;详细阐述语义分割和目标检测之间的差异。 一、基本概念 1.1 语义分割&#xff08;Semantic…

【MySQL入门到精通-黑马程序员】MySQL基础篇-DCL

文章目录 前言一、DCL-介绍二、DCL-管理用户二、DCL-权限控制总结 前言 本专栏文章为观看黑马程序员《MySQL入门到精通》所做笔记&#xff0c;课程地址在这。如有侵权&#xff0c;立即删除。 一、DCL-介绍 DCL英文全称是Data Control Language&#xff08;数据控制语言&#x…

联邦学习综述二

联邦学习漫画 联邦学习漫画链接: https://federated.withgoogle.com/ Federated Analytics: Collaborative Data Science without Data Collection 博客链接: https://blog.research.google/2020/05/federated-analytics-collaborative-data.html 本篇博客介绍了联邦分析&a…