JavaScript中问号的三种用法??和?.以及 ?: ,您知道吗?

开发 前端
空值合并操作符??是一个逻辑操作符,当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。

最近,看了一些关于JavaScript的测试脚本,觉得JS 中问号的用法还是蛮有意思的,于是做了一下总结,在这里分享给大家!JS中的问号大概有三种用法,分别是:空值合并操作符、可选链操作符和三目运算。

问号问号(??)

空值合并操作符??是一个逻辑操作符,当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。

例如

console.log(null ?? "xx")
输出 xx
console.log(1 ?? "xx")
输出 1

问号点 (?.)

可选链操作符(?.)可选链操作符允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。 使用它的好处是引用为null 或者 undefined的情况下不会引起错误。

语法:obj?.prop obj?.[expr] arr?.[index] func?.(args)

例如

var obj={a:{b:1}}
console.log(obj?.a?.b)
输出1
console.log(obj?.a?.c)
输出 undefined

问号冒号(?: )

这是三目运算,具体表达式是(condition ? exprIfTrue : exprIfFalse)

该表达式的含义是 条件condition是真,则执行exprIfTrue ,否则执行exprIfFalse

举个例子大家就懂了

var n = 10;
console.log((n >= 11) ? "a" : "b");
输出b
当 var n = 12;
输出a

责任编辑:武晓燕 来源: 今日头条
相关推荐

2023-02-02 14:24:08

物联网数据分析云平台

2019-01-07 13:01:08

Linux惊叹用法命令

2023-03-07 10:32:34

Go语言结构体

2022-01-20 08:38:02

Java接口Lambda

2022-01-17 08:19:51

Javascript 接口前端

2020-08-07 16:18:38

JavaScriptC++Python

2020-05-08 07:26:16

物联网平台物联网IOT

2022-03-10 08:25:27

JavaScrip变量作用域

2009-08-26 18:10:44

C# using的用法

2020-05-10 16:46:56

前端JavaScript开发

2023-12-19 16:43:01

2018-09-12 11:18:56

finalJava用法

2020-09-11 06:39:29

ThreadLocal线程

2021-11-11 11:24:54

JavaScript模型事件

2010-09-06 09:11:24

SQLUPDATE语句

2024-06-03 14:27:08

ThisAPIThat

2024-01-01 08:25:53

ViewSurface框架

2022-11-30 15:15:48

2024-05-29 14:09:00

C#编程this

2018-12-27 08:50:06

JavaScript开源
点赞
收藏

51CTO技术栈公众号