在 ECMAScript 2017 (ES8) 中,新增了一个尝试操作符(try operator),也称为 nullish 合并操作符(nullish coalescing operator)。这个操作符可以用来处理变量值为 null 或 undefined 的情况,使代码更加简洁和易读。
尝试操作符的语法
尝试操作符的语法如下:
a ?? b
其中 a 和 b 分别表示两个操作数。如果 a 的值为 null 或 undefined,则返回 b 的值,否则返回 a 的值。
尝试操作符的示例
下面是一些尝试操作符的使用示例:
-- -------------------- ---- ------- -- --- ----- --- - ---- -- ---------- ----------------- -- -- --------- -- --- ----- --- - --------- -- ---------- ----------------- -- -- --------- -- --- ----- --- - ------- -- ---------- ----------------- -- -- -------
在示例一中,因为 foo 的值为 null,所以返回默认值 'default'。在示例二中,因为 bar 的值为 undefined,所以同样返回默认值 'default'。在示例三中,因为 baz 的值为非 nullish 值 'hello',所以返回其本身的值。
尝试操作符的指导意义
尝试操作符可以用来简化代码,特别是在处理变量值为 null 或 undefined 的情况时。相比于传统的三元运算符,尝试操作符更加直观和易读。例如,下面是一个使用三元运算符处理变量值为 null 或 undefined 的示例:
const foo = null; const bar = foo !== null && foo !== undefined ? foo : 'default'; console.log(bar); // 输出 'default'
而使用尝试操作符,则可以更加简洁:
const foo = null; const bar = foo ?? 'default'; console.log(bar); // 输出 'default'
尝试操作符的引入,使得 JavaScript 代码更加简洁和易读,提高了开发效率。但需要注意的是,尝试操作符并不能处理其他 falsy 值(比如 false、''、0、NaN 等),如果需要处理这些值,仍需使用传统的三元运算符。
总结
尝试操作符是 ECMAScript 2017 (ES8) 中的一个新增特性,用来处理变量值为 null 或 undefined 的情况,可以使代码更加简洁和易读。需要注意的是,尝试操作符只能处理 nullish 值,不能处理其他 falsy 值。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65f936d9d10417a2225004ae