随着 Javascript 语言的不断发展和更新,ES9 新增了两种运算符,! 和 ?,它们的语义和应用使得代码更加优雅和简洁。
not 运算符
! 运算符在 Javascript 中一直都存在,其作用是将一个值转为布尔型并取反。在 ES9 中,它新增了一项功能,即可以用在对象的属性上,用于判断属性是否存在。
-- -------------------- ---- ------- ----- --- - - -- -- -- ----- -- ---------- -- - - ------------------- -- ----- ------------------- -- ---- ------------------- -- ---- ------------------- -- ----
以上代码,我们通过 ! 运算符来判断对象 obj 中的属性是否存在。如果属性存在,则取反后为 false,反之则为 true。
optional chaining 运算符
在开发过程中,我们经常会遇到深度嵌套的对象或数组,访问其内部属性或元素时非常不方便,甚至容易出错。而 ? 运算符的出现,很好的解决了这个问题。
-- -------------------- ---- ------- ----- --- - - -- - -- - -- - - - - ------------------------ -- - ------------------------ -- ---------
以上代码,我们通过 ? 运算符对嵌套式对象进行访问。如果访问的属性存在,则返回该属性值,否则返回 undefined。这让我们在访问深度嵌套的对象时更加方便和安全。
应用示例
优雅的处理对象取值
在使用 ES9 的 ? 运算符之前,我们通常都使用 if ... else ... 的方式来判断对象的属性是否存在,而这样的代码通常是冗长和重复的。使用 ? 运算符后,代码更加简洁。
-- -------------------- ---- ------- ----- --- - - -- - -- - -- - - - - -- ---- -- ---- -- ----- -- ------- -- ---------- - ---------------------- - ---- - -------------------- - -- --- -- ----------------------- -- --------
以上代码,在传统写法中,我们需要使用 if 判断 obj 对象中的属性是否存在,而在 ES9 写法中,则直接使用 ? 运算符就能够实现对嵌套对象的访问。在不存在该属性时,可以通过 ?? 运算符来返回默认值。
优雅的判断变量真值
在开发过程中,我们通常需要判断一个变量的真假值,传统的判断方式可以使用 if ... else ... 的方式,但代码不够简洁。使用 ! 运算符可以写出更加简洁的代码。
-- -------------------- ---- ------- ----- - - -- ----- - - - -- ---- -- -- --- --------- -- - --- ---- -- - --- --- - --------------- - ----- - -- -- -- - --- -- - --------------- - ----- - -- --- -- -- ----- - --------------- - ----- - -- -- -- ----- - --------------- - ----- -
以上代码,在传统写法中,我们需要使用 if 判断变量是否是 undefined、null 或空字符串,而在 ES9 写法中,则可以直接使用 ! 运算符将变量转为布尔型并判断真假值。在判断数值时,可以使用 != null 的方式,它可以判断除了 undefined 以外的所有 falsy 值。
总结
ES9 新增的 ! 和 ? 运算符为我们的代码编写带来许多方便和简洁。在实际编写代码时,可以根据实际情况应用到业务上,提高代码的可读性和维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64b0f7d648841e9894d3bb76