在 ECMAScript 2016(即 ES7)中,新增加了一种语法 -- 双重决策(double question mark,??)运算符,它可以用来简化代码,特别是在处理变量类型时。本文将会详细讲解这一新特性,并提供一些示例代码以供理解。
双重决策语法介绍
在 JavaScript 中,一个变量的值可能是 null
、undefined
、空字符串(''
)或者其他假值。我们想要判断一个未知变量的值是否为空,以至于做出相应的处理,这时候需要使用条件语句,如下所示:
if (typeof someVariable === 'undefined' || someVariable === null || someVariable === '') { // 处理未知变量为空的情况 }
这样的代码显得十分冗长和繁琐,而且不一定易于理解。ES7 中引入了双重决策语法,可以大大简化代码,如下所示:
const result = someVariable ?? 'default';
这个语句的意思是:如果 someVariable
不是 null
也不是 undefined
,那么 result
将会是 someVariable
的值;否则,result
将会是 'default'
。
为什么要使用双重决策语法
使用双重决策语法可以使代码更加简洁和易于理解。这种语法特别适用于判断未知变量值是否为空的情况。
例如,我们可以使用双重决策语法来优化这样的代码:
let someVariable; if (typeof someVariable === 'undefined' || someVariable === null || someVariable === '') { someVariable = 'default'; }
我们可以将它改写成如下形式:
let someVariable; someVariable ??= 'default';
这种方式可以以更少的代码行数来实现相同的功能。
双重决策语法的使用
双重决策语法可以用来判断未知变量的真实值是否为空,如果为空则使用默认值。
下面是一些示例代码:
-- -------------------- ---- ------- -- -- ------------ ----- ----- ------------ - --- ----- ------ - ------------ -- ---------- -- -- --------- -- -- ------------ - ---- ----- ------------ - ----- ----- ------ - ------------ -- ---------- -- -- --------- -- -- ------------ - --------- ----- ------ - ------------ -- ---------- -- -- --------- -- -- ------------ ---- ----- ------------ - -------- ----- ------ - ------------ -- ---------- -- -- -------
总结
在本文中,我们讲解了 ES7 中新增的双重决策语法,它可以用来判断未知变量的真实值是否为空,从而使用默认值。我们还提供了一些示例代码来帮助读者理解。双重决策语法的使用可以使代码更加简洁和易于理解,尤其是在处理变量类型的情况下。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647596c7968c7c53b029ad65