前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript中!!、||、?.、??运算符的区别和用法

JavaScript中!!、||、?.、??运算符的区别和用法

作者头像
德顺
发布2023-08-25 13:39:40
4260
发布2023-08-25 13:39:40
举报
文章被收录于专栏:前端资源前端资源

JavaScript 中有四个常用的运算符,分别是 !!||?.??,它们都可以用于处理值的真假性和空值情况,但它们的行为和逻辑有所不同。本文将介绍这四个运算符的定义、功能和示例,帮助你理解和掌握它们的用法。

!! 用法
  • !! 对一个值进行两次逻辑非运算,第一次逻辑非运算会将值转换为布尔值,然后取反,第二次逻辑非运算会再次取反,得到原始的布尔值。
  • !! 可以用于判断一个值是否为真值或者假值。 例如,变量 x 是一个真值,如 true1"hello" 等,那么 !!x 会返回 true; 如果 x 是一个假值,例如 false0"" 等, !!x 则会返回 false,。
?. 和 ?? 的区别
  • ?. 是可选链运算符,用于访问一个可能为空或者未定义的对象的属性,如果对象为空或者未定义,它会返回 undefined,而不会抛出错误。 例如,如果 obj 是一个对象,那么 obj?.name 会返回 obj 的 name 属性,如果 obj 是 null 或者 undefined,那么 obj?.name 会返回 undefined
  • ?? 是空值合并运算符,它用于提供一个默认值,当左边的表达式为 null 或者 undefined 时,它会返回右边的表达式的值,否则返回左边的表达式的值。例如,如果 x 是一个变量,那么 x ?? 0 会返回 x 的值,如果 x 是 null 或者 undefined,那么 x ?? 0 会返回 0
?? 和 || 的区别
  • ?? 只会在左边的表达式为 null 或者 undefined 时,返回右边的表达式的值,否则返回左边的表达式的值。这意味着,如果左边的表达式是一个假值,例如 false0"" 等,它仍然会被返回。
  • || 会在左边的表达式为任何假值时,返回右边的表达式的值,否则返回左边的表达式的值。这意味着,如果左边的表达式是一个真值,例如 true1"hello" 等,它会被返回。

所以,?? 和 || 的用法取决于你想要实现的逻辑。一般来说,如果你只想排除 null 或者 undefined,那么使用 ?? 比较好;如果你想排除所有假值,那么使用 || 比较好。例如:

代码语言:javascript
复制
// 假设 name 是一个变量
const greeting = name ?? "guest"; // 如果 name 是 null 或者 undefined,那么 greeting 会是 "guest",否则会是 name 的值
const status = name || "unknown"; // 如果 name 是任何假值,那么 status 会是 "unknown",否则会是 name 的值

未经允许不得转载:w3h5-Web前端开发资源网 » JavaScript中!!、||、?.、??运算符的区别和用法

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • !! 用法
  • ?. 和 ?? 的区别
  • ?? 和 || 的区别
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档