JavaScript中双问号表达式的使用方法

lxf2023-04-14 08:38:01

序言

JavaScript中,双疑问(??)关系式是一种非常有成功的方法。它的功能就是用来检验一个值是否属于nullundefined。若该数值nullundefined,那样双问号表达式会回到一个初始值。

今天我们就来实际研究一下双问号表达式的使用方法,以及其与其它类似方式的差别。

实际使用方法。

实际上,双问号表达式就是一个三目运算符的简单化书写,如下所示:

const result = value !== undefined && value !== null ? value : defaultValue;

在后面的关系式中,让我们检验了value 是不是相当于undefinednull,假如不相当于,大家回到value自身。

不然,大家回到一个初始值defaultValue。这类书写尽管作用简易,可是有非常多的重复代码,不益于程序代码日常维护易读性。

因而,双问号表达式的诞生就解决了问题。双问号表达式的句法结构如下所示:

const result = value ?? defaultValue;

这方面代码的意思是:假如value数值为nullundefined,那样回到defaultValue;不然回到value数值自身。应用双问号表达式,编码看上去就简单明了。

那样双问号表达式跟其他类似方式有什么区别呢?

实际上,JavaScript里还有一种方法也可以实现双问号表达式效果——逻辑或运算符(||)。比如:

const result = value || defaultValue;

这一段编码的内涵和前边代码是一样的。在其中,||运算符的基本原理是:假如第一个操作数为真,则回到第一个操作数数值;不然回到第二个操作数数值。这儿的涵盖了全部不以null、undefined、false、0、空字符串数值。

因而,假如value数值是nullundefined,那样返回便是defaultValue

那样二者之间有哪些很明显的不同呢?

双问号表达式和||运算符最关键区别在于空字符串的处理方式。

使用||运算符时,假如value是空字符串(""),那样返回值都是defaultValue。可是使用双问号表达式时,假如value是空字符串,那样返回便是空字符串自身。

这类差别或许对某些特殊的使用场景至关重要,因而,我们应该结合实际情况选择不同方式。

汇总

双问号表达式是一种非常好用的方式,在JavaScript中得到广泛应用。它词法简单明了,代码可读性强,尤其是在解决nullundefined的情形下,可以大大简化编码。但是,在实际应用的时候我们还需要注意与其他方式的差别,结合实际情况挑选最理想的方式。