阅读 84

javascript 中的 ?? 是什么写法 与 || 又 有什么区别?

前言

8a0e5cec99f4e2025c8e3fa316cb79f.jpg 今天在群里,有一位好友提出一个问题,问javascript中的??是什么用法,说没有见过这种写法。阅读本文,我将带你认识javascript中的??语法。

看完本文你可以收获:

  • 什么是?? 什么情况下用??

  • 什么是|| 什么情况下用||

js中的空值合并操作符(??)

定义

空值合并操作符(??)是一个逻辑操作符,当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。

基本用法

案例1

const foo = null ?? "string" // string 复制代码

案例2

const foo = "zz" ?? "string" // zz 复制代码

案例3

const foo = undefined ?? "string" //  string 复制代码

我们从以上是三个案例可以总结出来  当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数

我的疑问

空值合并操作符(??)和逻辑或操作符(||)有什么不一样呢,可能大家在项目中经常用到逻辑或操作符号(||),那我们在来比较下他们的区别吧

js中的逻辑或操作符(||)

定义

逻辑或操作符(||)不同,逻辑或操作符会在左侧操作数为假值时返回右侧操作数

基本用法

案例1

const foo = null || "string" // string 复制代码

案例2

const foo = undefined || "string" // string 复制代码

案例3

cosnt foo = 0 || "string" // string 复制代码

案例4

const foo = true || "string" // true 复制代码

案例5

const foo = "" || "string" // string 复制代码

经过我们比较会发现,如果使用 || 来为某些变量设置默认值,可能会遇到意料之外的行为。比如为假值(例如,'' 或 0)时候。

业务场景

  • 我们在开发中与后端联调都会发现这样一个问题。明明后端应该返回数组,却因为某种原因返回的null。这个时候我们用空值合并操作符可以避免带来的一些问题。

  • 业务中做一些判断,如下

8a0e5cec99f4e2025c8e3fa316cb79f.jpg


作者:zz
链接:https://juejin.cn/post/7017937055657230373


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐