[JavaScript] 运算符详解


文章目录
- 算术运算符(Arithmetic Operators)
- 注意事项:
- 比较运算符(Comparison Operators)
- 注意事项:
- 逻辑运算符(Logical Operators)
- 短路运算:
- 逻辑运算符的返回值:
- 赋值运算符(Assignment Operators)
- 三元运算符(Ternary Operator)
- 位运算符(Bitwise Operators)
- 运算符优先级
- 小练习
算术运算符(Arithmetic Operators)
算术运算符用于完成基本的数学计算。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
+ | 加法 | 5 + 2 | 7 |
- | 减法 | 5 - 2 | 3 |
* | 乘法 | 5 * 2 | 10 |
/ | 除法 | 5 / 2 | 2.5 |
% | 取余(模运算) | 5 % 2 | 1 |
** | 指数(幂运算) | 2 ** 3 | 8 |
++ | 自增(每次加1) | let x = 5; x++ | 5,然后变为6 |
-- | 自减(每次减1) | let x = 5; x-- | 5,然后变为4 |
注意事项:
- 整数除法:JavaScript中没有整数除法,
5 / 2会得到浮点结果2.5。 - 自增/自减运算符可以分为前置和后置:
- 前置
++x:先加1后返回结果。 - 后置
x++:先返回结果后加1。
- 前置
let a = 10;
console.log(a++); // 输出 10,先返回后加1
console.log(a); // 输出 11
console.log(++a); // 输出 12,先加1后返回
比较运算符(Comparison Operators)
比较运算符返回布尔值:true 或 false。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
== | 相等(值相等) | 5 == '5' | true |
=== | 全等(值和类型都相等) | 5 === '5' | false |
!= | 不相等(值不相等) | 5 != '5' | false |
!== | 不全等(值或类型不相等) | 5 !== '5' | true |
> | 大于 | 5 > 3 | true |
< | 小于 | 5 < 3 | false |
>= | 大于等于 | 5 >= 5 | true |
<= | 小于等于 | 3 <= 5 | true |
注意事项:
==** 与===的区别**:==会进行类型转换,只比较值是否相等。===不会进行类型转换,要求值和类型都相等。
console.log(5 == '5'); // true,因为字符串'5'被转换成数字5
console.log(5 === '5'); // false,因为类型不同
逻辑运算符(Logical Operators)
逻辑运算符用于布尔值运算,主要包括:与、或、非。
| 运算符 | 描述 | 示例 | 结果 |
|---|---|---|---|
&& | 逻辑与(AND) | true && false | false |
| ` | ` | 逻辑或(OR) | |
! | 逻辑非(NOT) | !true | false |
短路运算:
&&:遇到false会短路,直接返回false的值。||:遇到true会短路,直接返回true的值。
let x = 5;
console.log(x > 0 && x < 10); // true,x大于0并且小于10
console.log(x > 0 || x < 3); // true,x大于0或小于3
console.log(!(x > 0)); // false,x大于0的反向
逻辑运算符的返回值:
&&和||不总是返回布尔值,它们会返回短路时的具体值。
console.log('a' && 'b'); // 'b',因为'a'为真,继续返回后一个值
console.log(null || 'hello'); // 'hello',因为`null`为假,返回`hello`
赋值运算符(Assignment Operators)
赋值运算符用来给变量赋值。
| 运算符 | 描述 | 示例 | 等价于 |
|---|---|---|---|
= | 赋值 | x = 5 | |
+= | 加后赋值 | x += 3 | x = x + 3 |
-= | 减后赋值 | x -= 3 | x = x - 3 |
*= | 乘后赋值 | x *= 3 | x = x * 3 |
/= | 除后赋值 | x /= 3 | x = x / 3 |
%= | 取余后赋值 | x %= 3 | x = x % 3 |
**= | 幂后赋值 | x **= 2 | x = x ** 2 |
三元运算符(Ternary Operator)
三元运算符是一个简单的条件运算符,语法为:条件 ? 表达式1 : 表达式2。
let age = 20;
let isAdult = age >= 18 ? '成年人' : '未成年人';
console.log(isAdult); // 输出:成年人
位运算符(Bitwise Operators)
位运算符操作二进制位,用得较少,但在某些性能优化或算法中很重要。
| 运算符 | 描述 | 示例 |
|---|---|---|
& | 按位与 | 5 & 3(结果:1) |
| ` | ` | 按位或 |
^ | 按位异或 | 5 ^ 3(结果:6) |
~ | 按位取反 | ~5(结果:-6) |
<< | 左移 | 5 << 1(结果:10) |
>> | 右移 | 5 >> 1(结果:2) |
运算符优先级
JavaScript中的运算符是有优先级的,高优先级的运算符会优先计算。
| 优先级 | 运算符 | 说明 |
|---|---|---|
| 1 | () | 括号 |
| 2 | ++ -- | 自增、自减 |
| 3 | ** | 幂运算 |
| 4 | * / % | 乘、除、取余 |
| 5 | + - | 加、减 |
| 6 | < <= > >= | 比较 |
| 7 | == != === !== | 相等、全等等 |
| 8 | && | 逻辑与 |
| 9 | ` | |
| 10 | = | 赋值 |
小练习
可以尝试完成以下练习题:
- 使用三元运算符,根据一个数字是否大于0来输出“正数”或“非正数”。
- 判断一个字符串是否为空(长度为0),使用
||输出默认值。
相关文章:
[JavaScript] 运算符详解
文章目录 算术运算符(Arithmetic Operators)注意事项: 比较运算符(Comparison Operators)注意事项: 逻辑运算符(Logical Operators)短路运算:逻辑运算符的返回值…...
Hooks 使用规则
Hooks 使用规则 命名规则 Hook 必须 useXxx 格式来命名。 PS:这种命名规则也很易读,简单粗暴 调用位置 Hook 或自定义 Hook ,只能在两个地方被调用 组件内部其他 Hook 内部 组件外部,或一个普通函数中,不能调用…...
Ubuntu 24.04 LTS 安装 Docker Desktop
Docker 简介 Docker 简介和安装Ubuntu上学习使用Docker的详细入门教程Docker 快速入门Ubuntu版(1h速通) Docker 安装 参考 How to Install Docker on Ubuntu 24.04: Step-by-Step Guide。 更新系统和安装依赖 在终端中运行以下命令以确保系统更新并…...
智能创造的幕后推手:AIGC浪潮下看AI训练师如何塑造智能未来
文章目录 一、AIGC时代的算法与模型训练概览二、算法与模型训练的关键环节三、AI训练师的角色与职责四、AI训练师的专业技能与素养五、AIGC算法与模型训练的未来展望《AI训练师手册:算法与模型训练从入门到精通》亮点内容简介作者简介谷建阳 目录 《AI智能化办公&am…...
从 JIRA 数据到可视化洞察:使用 Python 创建自定义图表
引言 在项目管理和软件开发中,JIRA 是最广泛使用的工具之一,尤其是在追踪问题、任务和团队进度方面。对于开发者和团队来说,能够从 JIRA 中提取并分析数据,以便更好地理解项目状态和趋势,至关重要。虽然 JIRA 本身提供…...
【网络原理】万字详解 HTTP 协议
🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. HTTP 前置知识1.1 HTTP 是什么1.2 HTPP 协议应用场景1.3 HTTP 协议工作过程 2. HTTP 协议格式2.1 fiddler…...
PHP企业IM客服系统
💬 企业IM客服系统——高效沟通,无缝连接的智慧桥梁 🚀 卓越性能,释放无限可能 在瞬息万变的商业环境中,我们深知沟通的力量。因此,基于先进的ThinkPHP5框架与高性能的Swoole扩展,我们匠心独运…...
Linux操作系统的灵魂,深度解析MMU内存管理
在计算机的奇妙世界里,我们每天使用的操作系统看似流畅自如地运行着各类程序,背后实则有着一位默默耕耘的 “幕后英雄”—— 内存管理单元(MMU)。它虽不常被大众所熟知,却掌控着计算机内存的关键命脉,是保障…...
PHP代码审计学习01
目录 两种思路 addslashes函数和magic_quotes_gpc配置: 今天来开php代码审计。 PHP无框架项目SQL注入挖掘技巧。 可以看看小迪老师的学习流程或者说是路线吧。 其中,最下面的代码审计工具推荐用下面两款,fortify,seay。 &…...
《数据思维》之数据可视化_读书笔记
文章目录 系列文章目录前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 数据之道,路漫漫其修远兮,吾将上下而求索。 一、数据可视化 最基础的数据可视化方法就是统计图。一个好的统计图应该满足四个标准:准确、有…...
深度学习常见术语解释
正例与负例: 在分类任务中,通常将目标类别称为正例(positive),非目标类别称为负例(negative)。 True Positives(TP): 被正确地划分为正例的个数,…...
重温STM32之环境安装
缩写 CMSIS:common microcontroller software interface standard 1,keil mdk安装 链接 Keil Product Downloads 安装好后,开始安装平台软件支持包(keil 5后不在默认支持所有的平台软件开发包,需要自行下载&#…...
使用Flask和Pydantic实现参数验证
使用Flask和Pydantic实现参数验证 1 简介 Pydantic是一个用于数据验证和解析的 Python 库,版本2的性能有较大提升,很多框架使用Pydantic做数据校验。 # 官方参考文档 https://docs.pydantic.dev/latest/# Github地址 https://github.com/pydantic/pyd…...
python_在钉钉群@人员发送消息
python_在钉钉群人员发送消息 1、第一种 企业内部机器人群聊实现人接入指南,适用于群机器人接收消息,处理完一系列的动作之后,将消息返回给发消息的人员,同时该人员。 需要在企微后台新建一个自建应用,在自建应用里…...
C语言之装甲车库车辆动态监控辅助记录系统
🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 C语言之装甲车库车辆动态监控辅助记录系统 目录 一、前言 1.1 (一)…...
线性代数概述
矩阵与线性代数的关系 矩阵是线性代数的研究对象之一: 矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,是线性代数中的核心概念之一。矩阵的定义和性质构成了线性代数中矩阵理论的基础,而矩阵运算则简洁地表示和…...
使用 ChatGPT 生成和改进你的论文
文章目录 零、前言一、操作引导二、 生成段落或文章片段三、重写段落四、扩展内容五、生成大纲内容六、提高清晰度和精准度七、解决特定的写作挑战八、感受 零、前言 我是虚竹哥,目标是带十万人玩转ChatGPT。 ChatGPT 是一个非常有用的工具,可以帮助你…...
Linux命令行工具-使用方法
参考资料 Linux网络命令:网络工具socat详解-CSDN博客 arm-linux-gnueabihf、aarch64-linux-gnu等ARM交叉编译GCC的区别_aarch64-elf-gcc aarch64-linux-gnu-CSDN博客 解决Linux内核问题实用技巧之-dev/mem的新玩法-腾讯云开发者社区-腾讯云 热爱学习地派大星-CS…...
RV1126+FFMPEG推流项目(7)AI音频模块编码流程
一、AI 模块和外设麦克风的关系 AI 模块是 RV1126 芯片的一个重要组成部分。它的主要功能是将外部接入的麦克风采集到的模拟信号通过内置的驱动程序转换为数字信号。这意味着麦克风作为外设,提供音频输入信号,AI 模块通过其硬件和软件的结合,…...
四、华为交换机 STP
生成树协议(STP)的核心目的是在存在冗余链路的网络中,构建一个无环的拓扑结构,从而防止网络环路带来的广播风暴等问题 一、STP 原理 选举根桥:网络中的每台交换机都会有一个唯一的桥 ID(BID)&am…...
fre:ac音频转换终极指南:从入门到精通的完整解决方案
fre:ac音频转换终极指南:从入门到精通的完整解决方案 【免费下载链接】freac The fre:ac audio converter project 项目地址: https://gitcode.com/gh_mirrors/fr/freac fre:ac是一款功能强大的免费音频转换工具,支持多种音频格式之间的转换&…...
2026年04月10日最热门的开源项目(Github)
根据本期榜单的数据分析,我们可以从几个角度进行探讨,包括项目的语言、介绍、当前Stars及热度等。 1. 项目语言分布 此榜单中的项目主要集中在Python和JavaScript等常用语言上,其中Python项目数量较多。可以观察到Python的丰富生态和广泛应…...
Mbed平台任意引脚软件PWM库实现与应用
1. 项目概述lib_PwmOutAllPin是一个面向 ARM Mbed OS 平台的轻量级扩展库,其核心目标是突破 Mbed 原生PwmOut类的硬件引脚限制,实现“任意数字引脚输出 PWM 波形”的能力。在标准 Mbed SDK 中,PwmOut构造函数仅接受预定义的、具备硬件 PWM 功…...
若依框架+MQTT实战:5步搞定物联网设备数据实时入库(附避坑指南)
若依框架与MQTT深度整合:物联网设备数据实时落库实战指南 1. 技术选型与架构设计 在物联网应用开发中,实时数据传输与处理是核心需求。我们采用若依(RuoYi)框架作为基础架构,结合MQTT协议实现设备数据的高效采集与存储,这种组合…...
SITS2026踩坑实录:47个生产环境AI推理延迟突增案例,含GPU调度错配、时序特征漂移检测及央行《智能风控接口规范》映射表
第一章:SITS2026案例:AI原生金融系统改造 2026奇点智能技术大会(https://ml-summit.org) 在2026年全球金融基础设施升级浪潮中,新加坡国际交易结算系统(SITS)启动代号为“Project Aether”的AI原生重构工程。该项目摒…...
东南亚电商支付方式有哪些?2026最新整
东南亚电商支付方式以电子钱包、信用卡支付、实时转账和国家统一二维码为核心。印尼常用GoPay、DANA、QRIS,泰国 以PromptPay和TrueMoney为主,马来西亚主流是DuitNow和TouchnGo,新加坡则以PayNow和GrabPay覆盖核心场景。 对于独立站卖家而言…...
R语言临床数据挖掘的7个致命陷阱:92%的医学研究者在第3步就失败了?
第一章:临床数据挖掘的医学伦理与R语言合规性基础临床数据挖掘在推动精准医疗与公共卫生决策中具有不可替代的价值,但其前提是严格遵循医学伦理原则与数据治理规范。世界医学会《赫尔辛基宣言》与我国《涉及人的生物医学研究伦理审查办法》均强调&#x…...
告别 Notion AI 付费:利用 Gemini Client 自建最强笔记助手
前言 Notion作为现在最流行的笔记工具之一,其功能完整和页面美观而广受好评,但是它的ai功能是要钱的!每月10美金!这对笔者来说是不太能接受的,正巧最近有了gemini的会员并下载安装了cli,再加上最近酷爱逛魔…...
fpga系列 HDL:跨时钟域同步 双触发器同步器
目录双触发器同步器(Two-Flip-Flop Synchronizer)示例代码:双触发器同步器的优缺点优点:缺点:适用场景:应用实例:同步来自spi_slave的单个使能信号跨时钟域的设计需要特别小心,以避免…...
正温度系数+低温度依赖性:IKW40N65WR5为什么容易并联且高温不掉链
IKW40N65WR5来自英飞凌的TRENCHSTOP™ 5系列,是一颗带反并联二极管的650V/40A逆导型IGBT。它的参数在IGBT家族里不是电流最大的——40A、TO-247封装——但它在一件事上做得很扎实:把1.4V的极低饱和压降、集成式单体内置二极管、高达60kHz的开关能力&…...
