在前端开发中,我们常常需要进行变量或对象的检查,以确保其值不为 null 或 undefined。过去,为了实现这一点,我们经常使用 if 语句或三元运算符来进行判断。但是现在,随着 Null Conditional Operators 的出现,我们可以更加简洁地处理这些情况。
Null Conditional Operators 是一组新操作符,包括 ?.
和 ??
,它们可以帮助我们更容易地访问和处理可能为 null 或 undefined 的变量或属性。
Null-Conditional Operator
Null-Conditional Operator ?.
可以用来代替深度检查(deep check)和空值判断(null check),避免了大量的重复代码和嵌套结构。
示例代码如下:
----- ------ - - ----- -------- -------- - ------- ---- ---- ---- ----- ---------- ------ ---- - -- ----- ---------- - -------------- - --------------------- - --- ------------------------ -- ------- --- ---- -- -- ---------- ---------------- -------- ---- ----- ----------- - ----------------------- -- --- ------------------------- -- ------- --- ---- --
上述代码中,我们首先通过传统的 if 语句检查了 person 对象是否存在 address 属性,如果存在则获取其中的 street 属性。而使用 Null-Conditional Operator 则可以更加简单地达到同样的效果,表达式 person?.address?.street
会在 person 或 address 属性不存在时返回 undefined,避免了许多冗余代码。
Nullish Coalescing Operator
Nullish Coalescing Operator ??
则用于处理变量值为 null 或 undefined 的情况。这个操作符返回第一个非 null 或 undefined 的操作数,如果所有操作数都是 null 或 undefined,则返回最后一个操作数。
示例代码如下:
----- ------------ - --- ----- ---- - ---- -- ------ ------- ----- ---- - --------- -- ------ -------------------------- -- ------- -- ------------------ -- ------- ------ ------ ------------------ -- ------- -----
在上述代码中,我们通过 Nullish Coalescing Operator 将 text 和 name 变量的默认值设置为了字符串,当 text 和 name 值为 null 或 undefined 时则使用默认值。而 defaultValue 变量则没有被赋值,因此输出为空字符串。
指导意义
使用 Null Conditional Operators 和 Nullish Coalescing Operator 可以大大简化我们的代码,并提高代码可读性和易维护性。它们的特点是简单轻巧、安全可靠,特别适合在处理复杂对象、JSON 等数据结构时使用。
但是需要注意的是,这些新特性并不是必须使用或完全替代传统的 if 语句或三元运算符,要根据实际情况决定是否使用。
最后,建议在编写 Null Conditional Operators 和 Nullish Coalescing Operator 的代码时,注重代码可读性和可维护性,采用良好的编码习惯,避免过度使用嵌套结构,以免增加代码的复杂性。
参考链接
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/31406