ES12 的 typeof 空值运算符详解

阅读时长 3 分钟读完

ES12 是 ECMAScript 的最新版本,它引入了一种新的运算符 ??,以及对 typeof 运算符的扩展。这篇文章将介绍 typeof 运算符的新特性,以及如何结合 ?? 运算符实现更加简洁和安全的代码。

typeof 运算符

在 JavaScript 中,typeof 运算符用于确定一个变量或表达式的数据类型。它返回一个字符串,表示操作数的数据类型。例如:

需要注意的是,typeof null 的结果是 "object",这是 JavaScript 语言的历史遗留问题。如果想判断一个变量是否为 null,应该使用 === 运算符:

在 ES12 中,typeof 运算符得到了扩展,可以用于判断更多的数据类型,例如:

空值运算符

JavaScript 中的空值表示缺少一个可用的值,有两种空值:nullundefined?? 运算符是 ES12 中的新增运算符,它可以配合 typeof 运算符,用于检测一个值是否为 nullundefined,并提供默认值。例如:

如果运算符左侧的值为 nullundefined,则返回右侧的默认值;否则返回左侧的值。需要注意的是,?? 运算符只能检测 nullundefined,不能检测其他类似空字符串、空数组等的值。

结合使用

typeof 运算符和 ?? 运算符可以结合使用,用于检测一个变量的数据类型,并提供默认值。例如:

这两个写法都可以实现相同的功能,但是第二种写法更加简洁,易于理解和维护。

总结

ES12 中的 typeof 运算符和 ?? 运算符是非常有用的特性,可以用于简化代码,并提高代码的可读性和可维护性。使用这些特性时,需要注意它们的限制和适用场景,才能发挥它们的最大价值。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6450aed8980a9b385b9a36f6

纠错
反馈