当前位置: 首页 > 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 删除…...

pmap命令隐藏玩法:用-XX参数挖出Linux进程的所有内存秘密

pmap命令隐藏玩法&#xff1a;用-XX参数挖出Linux进程的所有内存秘密 当系统性能出现瓶颈时&#xff0c;开发者和运维工程师往往需要深入分析进程的内存使用情况。虽然常见的pmap -x命令能提供基本的内存映射信息&#xff0c;但真正的高手都知道&#xff0c;-XX选项才是揭开内…...

解锁Blender操作可视化:6大核心价值与7个实战技巧提升300%教程质量

解锁Blender操作可视化&#xff1a;6大核心价值与7个实战技巧提升300%教程质量 【免费下载链接】Screencast-Keys Blender Add-on: Screencast Keys 项目地址: https://gitcode.com/gh_mirrors/sc/Screencast-Keys 在数字创作领域&#xff0c;操作可视化是连接创作者与观…...

图像处理中的频域魔法:用傅里叶变换消除噪点与增强细节的3种技巧

图像处理中的频域魔法&#xff1a;用傅里叶变换消除噪点与增强细节的3种技巧 当你在处理一张模糊的医学影像或卫星图片时&#xff0c;是否想过那些隐藏在像素背后的频率秘密&#xff1f;傅里叶变换就像一台精密的频谱分析仪&#xff0c;能将图像从空间域转换到频域&#xff0c…...

突破付费墙封锁:智能内容解锁工具完全指南

突破付费墙封锁&#xff1a;智能内容解锁工具完全指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 你是否曾为了一篇重要的付费文章而束手无策&#xff1f;在信息爆炸的时代&#…...

CopyManga下载器新手指南:从入门到精通的漫画收藏解决方案

CopyManga下载器新手指南&#xff1a;从入门到精通的漫画收藏解决方案 【免费下载链接】copymanga-downloader 使用python编译exe/bash/命令行参数来下载copymanga(拷贝漫画)中的漫画&#xff0c;支持批量选话下载和获取您收藏的漫画并下载&#xff01;(windows&linux支持&…...

Wireshark抓Android包,选对网卡是关键!教你一眼识别哪个是手机流量(附避坑指南)

Wireshark抓取Android流量的精准定位指南 在移动应用开发、网络调试或安全分析过程中&#xff0c;经常需要抓取Android设备的网络流量进行分析。Wireshark作为业界标准的网络协议分析工具&#xff0c;能够帮助我们深入理解数据流动的细节。然而&#xff0c;当电脑连接了多个网络…...

Android14 SurfaceFlinger启动流程与线程调度机制解析

1. SurfaceFlinger的启动入口与初始化流程 Android显示系统的核心服务SurfaceFlinger由init进程启动&#xff0c;这个设计保证了它在系统早期就能准备好图形合成能力。main函数作为入口点&#xff0c;首先做了一系列关键初始化&#xff1a; 设置Binder线程池的最大线程数为4&…...

Cursor试用限制终极解决方案:一篇文章彻底解决你的AI编程困境

Cursor试用限制终极解决方案&#xff1a;一篇文章彻底解决你的AI编程困境 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Youve reached your trial request limit. / Too many free trial accounts used on this machine. Please upgrade to p…...

Musicdl革新性全场景音乐解决方案:5个维度揭秘开源音乐下载技术的破局之道

Musicdl革新性全场景音乐解决方案&#xff1a;5个维度揭秘开源音乐下载技术的破局之道 【免费下载链接】musicdl Musicdl: A lightweight music downloader written in pure python. 项目地址: https://gitcode.com/gh_mirrors/mu/musicdl 在数字音乐产业蓬勃发展的今天…...

BilibiliDown完整指南:三步掌握B站视频批量下载技巧

BilibiliDown完整指南&#xff1a;三步掌握B站视频批量下载技巧 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/…...