序言
在JavaScript
中,双疑问(??)关系式是一种非常有成功的方法。它的功能就是用来检验一个值是否属于null
或undefined
。若该数值null
或undefined
,那样双问号表达式会回到一个初始值。
今天我们就来实际研究一下双问号表达式的使用方法,以及其与其它类似方式的差别。
实际使用方法。
实际上,双问号表达式就是一个三目运算符的简单化书写,如下所示:
const result = value !== undefined && value !== null ? value : defaultValue;
在后面的关系式中,让我们检验了value
是不是相当于undefined
或null
,假如不相当于,大家回到value
自身。
不然,大家回到一个初始值defaultValue
。这类书写尽管作用简易,可是有非常多的重复代码,不益于程序代码日常维护易读性。
因而,双问号表达式的诞生就解决了问题。双问号表达式的句法结构如下所示:
const result = value ?? defaultValue;
这方面代码的意思是:假如value数值为null
或undefined
,那样回到defaultValue
;不然回到value
数值自身。应用双问号表达式,编码看上去就简单明了。
那样双问号表达式跟其他类似方式有什么区别呢?
实际上,JavaScript
里还有一种方法也可以实现双问号表达式效果——逻辑或运算符(||)。比如:
const result = value || defaultValue;
这一段编码的内涵和前边代码是一样的。在其中,||运算符的基本原理是:假如第一个操作数为真,则回到第一个操作数数值;不然回到第二个操作数数值。这儿的真涵盖了全部不以null、undefined、false、0、空字符串
数值。
因而,假如value
数值是null
或undefined
,那样返回便是defaultValue
。
那样二者之间有哪些很明显的不同呢?
双问号表达式和||运算符最关键区别在于空字符串的处理方式。
使用||运算符时,假如value
是空字符串(""),那样返回值都是defaultValue
。可是使用双问号表达式时,假如value
是空字符串,那样返回便是空字符串自身。
这类差别或许对某些特殊的使用场景至关重要,因而,我们应该结合实际情况选择不同方式。
汇总
双问号表达式是一种非常好用的方式,在JavaScript
中得到广泛应用。它词法简单明了,代码可读性强,尤其是在解决null
和undefined
的情形下,可以大大简化编码。但是,在实际应用的时候我们还需要注意与其他方式的差别,结合实际情况挑选最理想的方式。