可选链运算符(?.)的使用

这篇具有很好参考价值的文章主要介绍了可选链运算符(?.)的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作用:读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。运算符的功能类似于 . 链式运算符,不同之处在于,在引用为空  (nill 或者 undefined) 的情况下不会引起错误,该表达式短路返回值是 undefined。与函数调用一起使用时,如果给定的函数不存在,则返回 undefined

使用:

var obj = { a: 1, b: 0 };
console.log(obj.a, obj.b)
console.log(obj?.a) // 1
console.log(obj?.[b]) // 0
console.log(obj?.c) // undefined
console.log(obj?.b || '') // ""
console.log(obj?.b ?? '') // 0

具体场景:

1、使用ref调用vue组件函数,但组件v-if时,使用?.运算符可以进行代码简化;

2、多层对象(Object)嵌套时使用链式操作符(.)进行获取值时使用 ?. 可以确保获取的数据不会报错(Cannot read properties of undefined)

遇到的问题:

在一般情况下要设置默认值做法是 undefined || "xxx";

在可选链运算符时 应该使用 ?? 而不是 || 原因是  文章来源地址https://www.toymoban.com/news/detail-617875.html

console.log(obj?.b || '') // ""
console.log(obj?.b ?? '') // 0
在 || 的判断中 0会被转换为 false,输出后面的空字符串,所有需要使用 ??(空值合并运算符 null,undefined)

到了这里,关于可选链运算符(?.)的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C&C++】为什么 scanf 函数在读取字符串时不需要用取地址运算符 &

    在C语言中,字符串实际上是字符数组,所以我们可以使用 scanf 函数来读取字符串。但是,需要注意的是, scanf 在读取字符串时会在遇到空格、制表符或换行符时停止。因此,它不能用于读取包含空格的字符串。 以下是使用 scanf 读取字符串的基本示例: 在这个例子中,我们

    2024年01月20日
    浏览(39)
  • 【C++】运算符重载案例 - 字符串类 ⑤ ( 重载 大于 > 运算符 | 重载 小于 < 运算符 | 重载 右移 >> 运算符 - 使用全局函数重载 | 代码示例 )

    使用 成员函数 实现 等于判断 == 运算符重载 : 首先 , 写出函数名 , 函数名规则为 \\\" operate \\\" 后面跟上要重载的运算符 , 要对 String a , b 对象对比操作 , 使用 大于 运算符 , 使用时用法为 a b ; 函数名是 operate ; 然后 , 根据操作数 写出函数参数 , 参数一般都是 对象的引用 ; 要对

    2024年02月07日
    浏览(38)
  • 如何使用SQL系列 之 如何在SQL中使用比较运算符和IS NULL运算符

    在某些 结构化查询语言 (SQL)语句中, WHERE 子句可以用来限制给定操作会影响哪些行。他们通过定义特定的条件来做到这一点,这些条件被称为 搜索条件 ,每一行必须满足才会受到影响。搜索条件由一个或多个 谓词 组成,它们是特殊的表达式,计算结果为“true”、“false”

    2024年02月10日
    浏览(34)
  • Java 运算符的使用

    2024年02月09日
    浏览(62)
  • php运算符的基本使用

    $base = 20; $height = 10; $area = $base * $height; 我用来将base与height相乘的 *  ,就是乘法运算。 我们有相当多的运算符,让我们对主要的运算符做一个简单的总结。 首先,这里是算术运算符。 + , - , * , /  (除法), %  (余数)和 **  (指数)。 我们有赋值运算符 =  ,我们已经用它

    2024年02月17日
    浏览(37)
  • MySQL-运算符的使用解析

    MySQL支持各种类型的运算符,这些运算符可以用于处理数字、日期和字符串等不同类型的数据。 MySQL支持各种类型的运算符,这些运算符可以用于处理数字、日期和字符串等不同类型的数据。以下是一些MySQL支持的常用运算符: 算术运算符 :加号(+)、减号(-)、乘号(*)

    2023年04月25日
    浏览(37)
  • 【Kotlin】类的继承 ② ( 使用 is 运算符进行类型检测 | 使用 as 运算符进行类型转换 | 智能类型转换 | Any 超类 )

    在 Kotlin 中 , 如果不确定一个 实例对象的类型 , 可以 使用 is 运算符进行判定 , 使用方法 上述用法可以判定 实例对象 是否是 判定类型 , 如果是 返回 true , 反之 返回 false ; 代码示例 : 在下面的代码中 , 调用 student is Person 判断 student 对象是否是 Person 类型 ; 执行结果 : 将 子类

    2024年02月03日
    浏览(38)
  • 空值合并运算符(??)及其使用场景

    空值合并操作符(??) 是一个逻辑操作符,当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。 与逻辑或操作符(||) 不同,逻辑或操作符会在左侧操作数为假值时返回右侧操作数。也就是说,如果使用 || 来为某些变量设置默认值,可能会遇到

    2024年02月07日
    浏览(30)
  • 微信小程序使用三元运算符

    针对wxml中的style的三元运算符 针对wxml中的src的三元运算符 针对wxml中的获取后台数据值的三元运算符 完整代码块 CSS样式

    2024年02月08日
    浏览(37)
  • C语言条件运算符(?:)的使用

    (个人临时总结,知识点不完全,仅供参考,不喜轻喷) 条件运算符(?:)需要三个操作数,所以也称三元运算符 操作式如下: 【条件】? 【表达式1】:【表达式2】 根据条件的计算结果,决定要计算两个表达式中的哪一个 如果条件为true(即计算结果不为0),计算表达式1;条件

    2023年04月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包