当前位置: 首页 > news >正文

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

在这里插入图片描述

JavaScript是一门广泛用于前端和后端开发的编程语言,具备强大的表达式和运算符。本篇博客将重点介绍JavaScript中的三元运算符,解释其语法、用法和示例。如果您是JavaScript初学者,或者希望更深入了解这门语言的运算符,那么这篇博客将为您提供有关三元运算符的全面指南。

什么是三元运算符?

在JavaScript中,三元运算符是一种条件运算符,也称为条件表达式。这种运算符允许您基于某个条件的结果来选择两个不同的值之一。通常,它的语法如下:

condition ? expressionIfTrue : expressionIfFalse
  • condition:一个可以求值为truefalse的表达式。
  • expressionIfTrue:如果conditiontrue,则返回的值。
  • expressionIfFalse:如果conditionfalse,则返回的值。

三元运算符的主要作用是在一行代码中根据条件返回不同的值。它比使用if语句更紧凑,通常用于设置变量或返回值。

三元运算符的基本用法

下面我们来看一些三元运算符的基本用法示例,以便更好地理解它的功能。

1. 简单的三元运算符示例

let age = 25;
let message = (age >= 18) ? "成年人" : "未成年人";
console.log(message); // 输出:"成年人"

在这个例子中,如果age大于或等于18,三元运算符返回"成年人",否则返回"未成年人"。

2. 三元运算符用于变量赋值

三元运算符通常用于将不同的值赋给一个变量,具体取决于条件的结果。

let isRaining = true;
let weather = isRaining ? "带伞" : "不带伞";
console.log(weather); // 输出:"带伞"

在这个示例中,如果isRainingtrue,则weather变量被赋值为"带伞";如果isRainingfalse,则weather变量被赋值为"不带伞"。

3. 嵌套三元运算符

三元运算符可以嵌套在其他三元运算符内,但要小心使用,以确保代码的可读性。

let x = 10;
let y = 5;
let result = x > y ? "x 大于 y" : x < y ? "x 小于 y" : "x 等于 y";
console.log(result); // 输出:"x 大于 y"

在这个示例中,我们首先比较xy,如果x大于y,则返回"x 大于 y";否则,我们继续比较xy,如果x小于y,则返回"x 小于 y";否则,返回"x 等于 y"。

三元运算符与if语句的比较

三元运算符提供了一种更紧凑的方式来处理条件性赋值,但在某些情况下,使用if语句更为合适。下面是一些比较三元运算符和if语句的情况:

1. 简单条件

如果只需要在两个可能的值之间进行选择,而不涉及复杂的条件或多个条件,三元运算符是一个不错的选择。

// 使用三元运算符
let age = 25;
let message = (age >= 18) ? "成年人" : "未成年人";// 使用if语句
let age = 25;
let message;
if (age >= 18) {message = "成年人";
} else {message = "未成年人";
}

2. 复杂条件

如果条件逻辑更复杂,需要多个条件的组合,或者需要执行多个语句块,那么使用if语句通常更有利于代码的可读性。

// 使用三元运算符
let isMorning = true;
let isWeekend = false;
let greeting = isMorning && !isWeekend ? "早上好" : "你好";// 使用if语句
let isMorning = true;
let isWeekend = false;
let greeting;
if (isMorning && !isWeekend) {greeting = "早上好";
} else {greeting = "你好";
}

3. 返回值

三元运算符通常用于返回一个值,而不是执行一些操作。如果需要执行多个操作或没有返回值,if语句是更好的选择。

// 使用三元运算符(返回值)
function getGreeting(hour) {return hour < 12 ? "早上好" : "你好";
}// 使用if语句(没有返回值)
function sayGreeting(hour) {if (hour < 12) {console.log("早上好");} else {console.log("你好");}
}

结语

三元运算符是JavaScript中的一种强大工具,可用于在两个可能的值之间进行条件选择。它的紧凑性和简洁性使其成为代码中的常见选择,尤其是在单行操作或变量赋值的情况下。然而,对于更复杂的条件逻辑和多个操作,使用if语句通常更容易理解和维护。通过灵活运用这两种方法,您可以更好地管理JavaScript代码中的条件性逻辑。

希望这篇博客能够帮助您理解JavaScript中的三元运算符,并在日常编码中更好地应用它。如果您有任何问题或需要进一步的帮助,欢迎提出。愿您在JavaScript编程的道路上取得成功!

作者信息

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

相关文章:

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

JavaScript是一门广泛用于前端和后端开发的编程语言&#xff0c;具备强大的表达式和运算符。本篇博客将重点介绍JavaScript中的三元运算符&#xff0c;解释其语法、用法和示例。如果您是JavaScript初学者&#xff0c;或者希望更深入了解这门语言的运算符&#xff0c;那么这篇博…...

MySQL数据库技术笔记(4)

关系型数据库需要使用设计范式&#xff1a; 第一范式&#xff1a;遵从原子性&#xff0c;属性不可再分&#xff0c;数据库表的每一列都是不可分割的基本数据项&#xff0c;同一列中不能有多个值。 例如&#xff1a;需要创建一张地址表&#xff0c;存储地址信息。将地址信息划…...

批量图片转文字识别OCR身份证件信息提取软件

现在的OCR软件很多&#xff0c;有在线的也有本地的&#xff0c;单识别文字功能还行&#xff0c;不过能批量识别的好像不多&#xff0c;网上搜了几个都不怎么好用。尤其是识别身份证件之类的软件&#xff0c;并且还能提取出识别到的信息&#xff0c;比如姓名 名族地址等等更少。…...

Mac/Wins Matlab如何查看APPs源码

查看Apps方法一样&#xff0c;点击HOME-preferences-MATLAB-Apps查看你的Apps安装路径。 你的Apps文件就安装在该目录下&#xff0c;直接进入这个目录就可以看到你自己写的APPs文件&#xff0c;...

Web应用-Thinkphp框架-开发指南

Thinkphp框架 二级导航分类&#xff0c;模板继承&#xff0c;内置标签Public 修改MVC模块化 ——访问机制传参加载模版模版引入 分离Runtime 缓存文件管理员添加数据验证及验证场景 控制器 validate 在sql执行&#xff08;敏感操作&#xff09;之前验证数据模板 分页数据表连接…...

LeetCode【300】最长递增子序列

题目&#xff1a; 思路&#xff1a; 通常来说&#xff0c;子序列不要求连续&#xff0c;而子数组或子字符串必须连续&#xff1b;对于子序列问题&#xff0c;第一种动态规划方法是&#xff0c;定义 dp 数组&#xff0c;其中 dp[i] 表示以 i 结尾的子序列的性质。在处理好每个…...

JRebel在IDEA中实现热部署 (JRebel实用版)

JRebel简介&#xff1a; JRebel是与应用程序服务器集成的JVM Java代理&#xff0c;可使用现有的类加载器重新加载类。只有更改的类会重新编译并立即重新加载到正在运行的应用程序中&#xff0c;JRebel特别不依赖任何IDE或开发工具&#xff08;除编译器外&#xff09;。但是&…...

uniapp微信小程序之分包异步化之组件分包

一、组件分包异步化解决的问题 日渐增加的通用组件造成的主包空间不足; 提升小程序访问速度,降低白屏率; 二、开启组件分包异步化过程中遇到的问题 如何进行占位组件配置; 如何解决通过$refs访问异步组件报错; 如何判断所有异步组件都已加载完毕; 多分包组件之间互相调用…...

Nacos(替代Eureka)注册中心

Nacos初步学习 Nacos 是一个开源的服务注册和配置中心&#xff0c;它允许您注册、注销和发现服务实例&#xff0c;并提供了配置管理的功能。下面是Nacos的最基础用法&#xff1a; 1. 服务注册和发现&#xff1a; 首先&#xff0c;您需要将您的应用程序或服务注册到Nacos中。…...

FHRP首跳冗余的解析

首跳冗余的解析 个人简介 HSRP hot standby router protocol 热备份路由协议 思科设备上 HSRP VRRP 华为设备上 VRRP HSRP v1 version 1 HSRP v2 version 2 虚拟一个HSRP虚拟IP地址 192.168.1.1 开启HSRP的抢占功能 通过其他参数 人为调整谁是主 谁是从 &a…...

垂直分表为什么能够加快查询效率?

前言 垂直分表是分库分表中分表操作上一个重要的实现方式&#xff0c;利用垂直分表可以提高数据的处理效率和查询速度&#xff0c;本节主要围绕 垂直分表为什么能够加快查询速度 展开说明&#xff0c;以mysql查询的底层流程为例。 垂直分表是将一张表按列分为多张表&#xff0c…...

Linux网络基础知识全面总结

文章目录 linux网络基础知识1.1 IP地址和子网掩码1.2 网关和路由1.3 域名系统 (DNS)1.4 端口和协议 Linux网络配置2.1 ifconfig命令2.2 网络接口配置文件2.3 DHCP自动获取IP地址2.4 静态IP地址配置2.5 网络重启和应用配置3. 网络工具和命令3.1 ping命令3.2 traceroute和mtr命令…...

【arm实验2】按键中断事件控制实验

设置按键中断&#xff0c;按键1按下&#xff0c;LED亮&#xff0c;再次按下&#xff0c;灭 按键2按下&#xff0c;蜂鸣器叫&#xff0c;再次按下&#xff0c;停 按键3按下&#xff0c;风扇转&#xff0c;再次按下&#xff0c;停 主函数&#xff1a; linuxlinux:~/study/08-c$…...

【数据结构-栈 二】【单调栈】每日温度、接雨水

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【单调栈的应用】&#xff0c;使用【栈】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&am…...

基于Keil a51汇编 —— 控制语句

ALIGN ALIGN expression ALIGN 语句将位置计数器设置为下一个地址模 2^表达式。 这可用于确保下一条语句在 2^n 边界上对齐。例如&#xff0c;对齐缓存行中的代码或数据。如有必要&#xff0c;汇编程序会创建一个间隙。间隔字节的内容因各个部分而异&#xff1a; 在data中未定…...

单目标优化算法:火鹰优化算法(Fire Hawk Optimizer,FHO)求解23个函数--提供MATLAB代码

一、火鹰优化算法FHO 火鹰优化算法&#xff08;Fire Hawk Optimizer&#xff0c;FHO&#xff09;由Mahdi Azizi等人于2022年提出&#xff0c;该算法性能高效&#xff0c;思路新颖。 单目标优化&#xff1a;火鹰优化算法&#xff08;Fire Hawk Optimizer&#xff0c;FHO&#…...

数据集笔记:分析OpenCellID 不同radio/ create_time update_time可视化

1 读取数据 &#xff08;以新加坡的cellID为例&#xff09; import geopandas as gpd import pandas as pdopencellidpd.read_csv(OpenCellID_SG.csv,headerNone,names[radio,mcc,net,area,cell,unit,lon,lat,range,samples,changeable1,created1,updated,AveSignal]) opence…...

【特纳斯电子】血氧饱和度监测仪设计-实物设计

视频及资料链接&#xff1a;血氧饱和度监测仪设计-实物设计 - 电子校园网 编号&#xff1a; T5662203M-SW 设计简介&#xff1a; 本设计是基于STM32的血氧饱和度监测仪系统&#xff0c;主要实现以下功能&#xff1a; 1. STM32单片机作为微处理器 2. MAX30102进行心率血氧检…...

雪花算法生成ID传到前端之后精度丢失问题

第一种&#xff1a;使用注解解决 使用方便简单&#xff0c;粒度高&#xff0c;适用于部分字段需要单独转换的场景&#xff0c;灵活度高 // 两种注解&#xff0c;选其一即可 // JsonFormat(shape JsonFormat.Shape.STRING) JsonSerialize(using ToStringSerializer.class) pri…...

Windows 10 - 适用于各种服务(Redis、MySQL)的文件迁移到其他目录后,导致的各种服务找不到的问题 - 注册服务 - 关闭服务 - 重启服务

目录 一、MySQL 服务找不到问题二、Redis 服务找不到问题Tips 三、PostgreSQL 服务找不到问题参考链接 必须要用管理员打开 doc 窗口&#xff0c;然后才进行以下操作。 通用命令 先关闭 xxx 服务 sc query xxx服务名&#xff0c;如 redis 服务 sc query redis sc query 删除…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...