Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JavaScript中!!、||、?.、??运算符的区别和用法

JavaScript中!!、||、?.、??运算符的区别和用法

作者头像
德顺
发布于 2023-08-25 05:39:40
发布于 2023-08-25 05:39:40
7.3K026
代码可运行
举报
文章被收录于专栏:前端资源前端资源
运行总次数:26
代码可运行

JavaScript 中有四个常用的运算符,分别是 !!||?.??,它们都可以用于处理值的真假性和空值情况,但它们的行为和逻辑有所不同。本文将介绍这四个运算符的定义、功能和示例,帮助你理解和掌握它们的用法。

!! 用法
  • !! 对一个值进行两次逻辑非运算,第一次逻辑非运算会将值转换为布尔值,然后取反,第二次逻辑非运算会再次取反,得到原始的布尔值。
  • !! 可以用于判断一个值是否为真值或者假值。 例如,变量 x 是一个真值,如 true1"hello" 等,那么 !!x 会返回 true; 如果 x 是一个假值,例如 false0"" 等, !!x 则会返回 false,。
?. 和 ?? 的区别
  • ?. 是可选链运算符,用于访问一个可能为空或者未定义的对象的属性,如果对象为空或者未定义,它会返回 undefined,而不会抛出错误。 例如,如果 obj 是一个对象,那么 obj?.name 会返回 obj 的 name 属性,如果 obj 是 null 或者 undefined,那么 obj?.name 会返回 undefined
  • ?? 是空值合并运算符,它用于提供一个默认值,当左边的表达式为 null 或者 undefined 时,它会返回右边的表达式的值,否则返回左边的表达式的值。例如,如果 x 是一个变量,那么 x ?? 0 会返回 x 的值,如果 x 是 null 或者 undefined,那么 x ?? 0 会返回 0
?? 和 || 的区别
  • ?? 只会在左边的表达式为 null 或者 undefined 时,返回右边的表达式的值,否则返回左边的表达式的值。这意味着,如果左边的表达式是一个假值,例如 false0"" 等,它仍然会被返回。
  • || 会在左边的表达式为任何假值时,返回右边的表达式的值,否则返回左边的表达式的值。这意味着,如果左边的表达式是一个真值,例如 true1"hello" 等,它会被返回。

所以,?? 和 || 的用法取决于你想要实现的逻辑。一般来说,如果你只想排除 null 或者 undefined,那么使用 ?? 比较好;如果你想排除所有假值,那么使用 || 比较好。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 假设 name 是一个变量
const greeting = name ?? "guest"; // 如果 name 是 null 或者 undefined,那么 greeting 会是 "guest",否则会是 name 的值
const status = name || "unknown"; // 如果 name 是任何假值,那么 status 会是 "unknown",否则会是 name 的值

未经允许不得转载:w3h5-Web前端开发资源网 » JavaScript中!!、||、?.、??运算符的区别和用法

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一、数据库表设计规范「建议收藏」
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。
全栈程序员站长
2022/09/06
4.4K0
一、数据库表设计规范「建议收藏」
​数据库之定义删除修改基本表
建立数据库最重要的一步就是定义一些基本表。SQL语言则是用CREATE TABLE语句定义基本表,其格式如下:
算法与编程之美
2019/09/25
8990
最通俗易懂的理解什么是数据库
每个人家里都会有冰箱,冰箱是用来干什么的?冰箱是用来存放食物的地方。同样的,数据库是存放数据的地方。正是因为有了数据库后,我们可以直接查找数据。例如你每天使用余额宝查看自己的账户收益,就是从数据库读取数据后给你的。
猴子数据分析
2023/09/18
4100
最通俗易懂的理解什么是数据库
如何较方便给上百张数据库表添加表字段
年前和业务部门的研发小伙伴聊天,他说由于之前表设计考虑不周全,导致业务表缺少了一些字段,他老大就把这个加表字段的任务给他,咋一听挺简单的,不就加些字段,但小伙伴烦恼的地方在于需要加这些字段的表大概有100多张,如果单靠手动添加,那效率太低了。于是他问我有没有啥方法,能比较方便的实现这个需求,今天就来水一下这个话题
lyb-geek
2022/01/07
5290
小白系列:数据库基础知识解析
今天,我打算用简单明了的语言来讲解一下数据库的基本概念。总体上,这些内容与我在视频中讲解的基本一致。如果你发现视频的讲解有些难以理解,不妨看看这篇文字版的解释,希望能够更快速地帮助你掌握数据库的相关知识。需要注意的是,本文讨论的数据库主要指的是关系型数据库。
努力的小雨
2024/08/17
4190
小白学数据:一文看懂NoSQL数据库
作者: 薛菲 审稿:张远园 Aileen ◆ ◆ ◆ 作者注 如果你关注大数据科技动向,可能听说过一个叫NoSQL数据库的名词,这可能让人有些云里雾里。其实我们处在一个激动人心的技术更迭时代,以甲骨文为代表的SQL数据库已经称霸了企业市场30年,而近年来的NoSQL则是强有力的更新换代的竞争者。这篇文章就通过问答的方式来给小白解释NoSQL数据库系统是什么,无论你的技术背景如何都能看得懂。对于数据分析从业人员来说,了解数据库的趋势可以让你的职业生涯如虎添翼;而对于工程师来说,了解新的基础系统更是必不可少的
大数据文摘
2018/05/22
9790
数据库批量修改文本
当我们需要批量更改链接网址时,如果逐一编辑文本,完全是在浪费时间。本文将为您讲解如何批量修改文本。
用户7162790
2022/03/23
1.9K0
数据库批量修改文本
Python小白的数据库入门
sqlite3 以上两个是主流的关系型数据库,我们观察之后发现,它们与我们熟知的Excel好像也没有什么不同。关系型数据库里面放的都是一张张的表,就如同Excel中的工作簿。就算不熟悉Excel,但每一张表也都是我们从小到大所熟悉的那种表结构,例如课程表、值日表之类的。
arcticfox
2019/07/10
2.2K0
Python小白的数据库入门
数据库表设计太劣质,被领导疯狂diss
在大家开发的时候,很多时候不是说,有人告诉你已经完全的设计好数据库了,也没有专门的人去管理数据库表设计这块的内容,而阿粉的朋友就是这么悲催,接手了公司一个同事的一个比较重要的功能,而阿粉的朋友也没有重新进行设计,于是就出现了这样的一幕。
Java极客技术
2022/12/02
3160
数据库表设计太劣质,被领导疯狂diss
SQL Server数据库表的创建、修改、复制、删除及数据处理
  本文介绍基于Microsoft SQL Server软件,实现数据库表的创建、修改、复制、删除与表数据处理的方法。
疯狂学习GIS
2025/03/17
1.4K0
SQL Server数据库表的创建、修改、复制、删除及数据处理
手把手教 | 如何设计高性能数据库表
尽管我们不是DBA,但我们平时都会涉及到数据库表的设计,那么我们该怎么设计呢?,表名怎么取?字段名怎么取?字段类型如何设置?字段长度如何设置?.....
故里
2021/03/10
3.3K0
第2章 SaaS-HRM- 数据库设计
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
用户1212940
2019/11/13
1.5K0
【数据库】常用数据库简介
sql 结构化查询语言(Structured Query Language)简称SQL
小言从不摸鱼
2024/09/24
6320
【数据库】常用数据库简介
MySQL数据库篇---对数据库,数据库中表,数据库中表的记录进行添修删查操作---保姆级教程
一台数据库服务器中会创建很多数据库(一个项目会创建一个数据库),在数据库中会创建很多张表(一个实体会创建一个表),在表中会有很多记录(一个对象实例回添加一条新的记录)
大忽悠爱学习
2021/11/15
4K0
数据库修改表
GeekLiHua
2025/01/21
4630
如何将excel表格导入mysql数据库_MySQL数据库
打开企业管理器开要导入数数据库,在表上按右键,所务–>导入数据,弹出DTS导入/导出向导,按 下一步 , 2、选择数据源 Microsoft Excel 97-2000,文件名 选择要导入的xls文件,按 下一步 , 3、选择目的 用于SQL Server 的Microsoft OLE DB提供程序,服务器选择本地(如果是本地数据库的话,如 VVV),使用SQL Server身份验证,用户名sa,密码为空,数据库选择要导入数据的数据库(如 client),按 下一步 , 4、选择 用一条查询指定要传输的数据,按 下一步 , 5、按 查询生成器,在源表列表中,有要导入的xls文件的列,将各列加入到右边的 选中的列 列表中,这一步一定要注意,加入列的顺序一定要与数据库中字段定义的顺序相同,否则将会出错,按 下一步 , 6、选择要对数据进行排列的顺序,在这一步中选择的列就是在查询语
全栈程序员站长
2022/11/08
58.5K0
【Jetpack】使用 Room 中的 Migration 升级数据库 ( 修改 Entity 实体类 - 更改数据模型 | 创建 Migration 迁移类 | 修改数据库版本 | 代码示例 )
使用 Room 访问数据库时 , 应用程序 的 数据模型 发生 改变 , 数据库版本进行升级 , 数据库表的字段 , 数据结构 , 发生了变化 , 需要进行更新 , 可以使用 Migration 迁移工具 升级数据库 ;
韩曙亮
2023/10/11
1.8K0
【Jetpack】使用 Room 中的 Migration 升级数据库 ( 修改 Entity 实体类 - 更改数据模型 | 创建 Migration 迁移类 | 修改数据库版本 | 代码示例 )
使用POI把查询到的数据表数据导出到Excel中,一个表一个sheet.最详细!!!
我们会遇到开发任务: 经理:小王,你来做一下把数据库里的数据导出到Excel中,一个表是一个sheet,不要一个表一个Excel. 小王:好的,经理.(内心一脸懵逼)
掉发的小王
2022/07/11
2.3K0
使用POI把查询到的数据表数据导出到Excel中,一个表一个sheet.最详细!!!
MySQL数据库学习·数据表的创建,查看,修改
提示我写错了,仔细看一看,原来是auto_increment被我少写了一个e。
花狗Fdog
2020/10/28
5.7K0
MySQL数据库学习·数据表的创建,查看,修改
盘点MySQL数据库的数据类型、库和表常见操作、索引、视图、函数等知识点
在日常开发中,存储数据的最常用的方式便是数据库了,其中最为著名的便是MySQL数据库,因它简便易于上手而且可扩展性强大,跨平台使得它广为使用。上一篇文章,我们讲到了它的安装,今天我们就来具体聊聊它的这篇文章分为11个部分,分别包括MySQL数据库的数据类型、库和表常见操作、索引、视图、函数、游标、触发器、存储过程、事务、备份与还原、用户账号、其它等知识点。
前端皮皮
2021/10/08
2K0
推荐阅读
相关推荐
一、数据库表设计规范「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验