【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.mzph.cn/news/102774.shtml

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

相关文章

记录:R语言生成热图(非相关性)

今天解决了一个困扰了我很久的问题&#xff0c;就是如何绘制不添加相关性的热图。一般绘制热图是使用corrplot包画相关性图&#xff0c;但是这样有一个前提&#xff0c;就是输入的数据集必须进行相关性分析。那么如果我不需要进行相关性分析&#xff0c;而是直接绘制能够反应数…

【快刊推荐】CCF-C类,2/3区SCIE,仅29天录用,16天见刊!

计算机领域 • 好刊推荐 01 期刊简介 影响因子&#xff1a;3.0-4.0 检索数据库&#xff1a;SCIE 在检 期刊分区&#xff1a;JCR2/3区&#xff0c;中科院4区 02 影响因子 影响因子呈现逐年稳步上升的趋势 03 期刊分区&#xff1a;JCR2/3区&#xff0c;中科院4区 04 预警…

Haskell网络编程:从数据采集到图片分析

概述 爬虫技术在当今信息时代中发挥着关键作用&#xff0c;用于从互联网上获取数据并进行分析。本文将介绍如何使用Haskell进行网络编程&#xff0c;从数据采集到图片分析&#xff0c;为你提供一个清晰的指南。我们将探讨如何使用亿牛云爬虫代理来确保高效、可靠的数据获取&am…

C++安装qt软件教程

目录 一、工具 二、安装步骤 1.1next 1.2安装目录 1.3安装环境设置选项 1.4Qt5.14.2 --> MinGW 7.3.0 64-bit 1.5 Qt5.14.2 --> 3D以下全选 1.6下一步 1.7下一步 1.8安装 三、什么是 Qt Qt 是一个跨平台的 C图形用户界面应用程序框架。 它为应用程序开发者提…

Python 单元测试设置

单元测试检查特定代码单元或模块是否按照开发人员的预期执行。 大多数时候&#xff0c;我们测试的代码单元是一个函数。 同样&#xff0c;我们可以测试所有功能。 作为最佳实践&#xff0c;至少在开发过程中&#xff0c;我们应该进行单元测试。 因此&#xff0c;在开发过程的…

java并发之AQS详解(待更)

一、为什么要用AQS同步框架&#xff1f; 开发者如果不了解JMM和多线程编程&#xff0c;就会写出很多线程不安全的程序&#xff0c;即使是经验丰富的程序员&#xff0c;并发编程也难免会出错。 而对于java程序员来说&#xff0c;并发编程就变得容易得多了&#xff0c;因为并发编…

如何在雷电模拟器上安装Magisk并加载movecert模块抓https包(二)

接来下在PC端安装和配置Charles&#xff0c;方法同下面链接&#xff0c;不再赘述。在模拟器上安装magisk实现Charles抓https包&#xff08;二&#xff09;_小小爬虾的博客-CSDN博客 一、记录下本机IP和代理端口 二、在手机模拟器上设置代理192.168.31.71:8888&#xff0c;设置…

rv1126-rknpu-v1.7.3添加opencv库

rv1126所使用的rknn sdk里默认是不带opencv库的&#xff0c;官方所用的例程里也没有使用opencv&#xff0c;但是这样在进行图像处理的时候有点麻烦了&#xff0c;这里有两种办法: 一是先用python将所需要的图片处理好后在转化为bin格式文件&#xff0c;在使用c或c进行读取&…

vue配置@路径

第一步&#xff1a;安装path&#xff0c;如果node_module文件夹中有path就不用安装了 安装命令&#xff1a;npm install path --save 第二步&#xff1a;在vue.config.js文件&#xff08;如果没有就新建&#xff09;中配置 const path require("path"); function …

uniapp 获取地理位置(uni#getLocation和高德sdk获取中文地址)

参考 https://uniapp.dcloud.net.cn/api/location/location.html https://ask.dcloud.net.cn/article/35070 1. uniapp api获取经纬度 uni.getLocation({type: wgs84,success: function (res) {console.log(当前位置的经度&#xff1a; res.longitude);console.log(当前位…

前端模块化

当我们从公司招聘上看到要求模块化的内容。 能从这几个角度回答&#xff0c;就说明我们是懂模块化的。 1. 模块化的本意&#xff0c;是当遇到一个复杂项目的时候&#xff08;简单的不建议用&#xff09;&#xff0c;把这个复杂的问题拆分成相对独立的模块&#xff0c;降低程序…

JavaScript中的异步编程

异步编程&#xff0c;是JavaScript编程中重要的一部分&#xff0c;最近学习了阮一峰老师的《深入掌握 ECMAScript 6 异步编程》系列文章&#xff0c;特意输出一篇学习笔记。传统的四种异步编程方法 回调函数 JavaScript 语言对异步编程的实现&#xff0c;就是回调函数。所谓回…

MyBatis的< resultMap >标签的简析

<resultMap> 标签的作用是用于配置数据库表和实体类之间的映射关系&#xff0c;定义查询结果集与实体类的属性之间的映射关系。它定义了 SQL 查询语句在返回结果集合时&#xff0c;如何将列名和属性名匹配起来&#xff0c;并将结果封装进一个指定的对象中。在 MyBatis 中…

设计模式-状态模式

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

软件工程概论

文章目录 软件的定义软件的特点软件的种类软件工程的起源软件工程的三个阶段软件工程概念的提出软件开发的本质软件工程框架软件工程的目标软件工程的原则软件工程的活动 软件的定义 计算机系统中的程序及其文档。 程序是计算任务的处理对象和处理规则的描述&#xff1b; 文档…

SQL基本语法用例大全

文章目录 SQL语法概述简单查询计算列查询条件查询范围查询使用逻辑运算符过滤数据使用IN操作符过滤数据格式化结果集模糊查询行数据过滤数据排序数据统计分析分组总计简单子查询多行子查询多表链接插入数据更新和删除数据使用视图数据库管理数据表管理 SQL语法概述 SQL(Struct…

腾讯云优惠券种类、领取方法及使用教程分享

腾讯云是国内领先的云计算服务提供商&#xff0c;为用户提供丰富的云计算产品和服务。为了吸引更多用户使用腾讯云的产品和服务&#xff0c;腾讯云会定期推出各种优惠券活动。本文将为大家介绍腾讯云优惠券的种类、领取方法及使用教程。 一、腾讯云优惠券种类介绍 腾讯云优惠券…

Ubuntu的中文乱码问题

一、Ubuntu的中文乱码问题 sudo apt-get install language-pack-zh-hans 二、修改/etc/environment&#xff08;在文件的末尾追加&#xff09;&#xff1a; LANG"zh_CN.UTF-8" LANGUAGE"zh_CN:zh:en_US:en" 三、修改/var/lib/locales/supported.d/loca…

“.NET视频总结:认识框架的结构和组件,掌握开发工具的奥妙“

目录 第一单元&#xff1a;二十一世纪程序执行 背景: 总结&#xff1a; 第二单元:对象导向与类别设计 背景: 总结&#xff1a; 第三单元&#xff1a;使用类别与基底类别库 背景: 总结: 第四单元:Windows开发程序 背景: 总结: 第五单元:防护式程序设计 背景: 总结…

SXSSFWorkbook-MinIo-大数据-流式导出

文章目录 前言业务现状架构思路技术细节生成摘要IDSXSSFWorkbookMinIomybatis 流查询PipedInputStream 保存到minio 总结 前言 由于业务涉及到数据比较大&#xff0c;用户对导出功能使用频繁&#xff0c;每次导出数据两10万以上。 为了减少数据库压力&#xff0c;及应用服务器…