首页 > 其他分享 >前端??和||的区别

前端??和||的区别

时间:2024-07-08 14:22:26浏览次数:4  
标签:profile undefined 区别 前端 假值 运算符 user null

const user = { profile: { name: '张三' } };

const userName = user.profile?.name ?? '匿名';

// 结果: userName = '张三'

此代码首先演示了如何使用可选链运算符 (?.) 安全地访问user.profilename值。如果user.profileundefinednull,它会短路并返回undefined,从而避免潜在的类型错误TypeError

然后,使用空值合并运算符 (??) 检查左侧是否为nullundefined,如果是,则使用默认值'匿名'。这可确保后备值不会是其他假值(如''0)。这对于访问数据结构中可能不存在某些中间属性的深层嵌套属性非常有用。

注意:

在 JavaScript 中,空值合并运算符 (??) 和逻辑或 (||) 都可以用于提供默认值,但它们处理假值的方式有所不同。

在上面的例子中,如果把??改为||,行为会稍微有些不同。||的左侧如果为假值,它将会返回右侧的值。JavaScript 中的假值包括nullundefined0NaN''(空字符串)和false。这意味着||左边的值不仅仅是nullundefined,如果还是其他假值,那么都将返回右侧的值。

标签:profile,undefined,区别,前端,假值,运算符,user,null
From: https://www.cnblogs.com/xinyouhunran/p/18266947

相关文章

  • TCP/IP模型和OSI模型的区别(面试题)
    OSI模型,是国际标准化组织ISO制定的用于计算机或通讯系统键互联的标准化体系,主要分为7个层级:物理层数据链路层网络层传输层会话层表示层应用层虽然OSI模型在理论上更全面,但是在实际网络通讯中,TCP/IP模型更加实用,TCP/IP分为四个层级:应用层传输层网际层网络接口层应用层:该层对......
  • 前端随手记
    目录vue中疑难element-ui修改侧边导航栏字体和大小vue中疑难element-ui修改侧边导航栏字体和大小参考这篇论文,感谢大佬给了新思路:https://blog.csdn.net/chen_cm/article/details/114963510?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2d......
  • Web前端工程师修炼之道
    代码和PDF等:GitHub-guozhe1992/readWeb设计基础:介绍Web设计的核心概念和基本原则,包括网页的构成元素、页面布局、色彩搭配等,帮助读者建立对Web设计的整体认识。HTML基础:详细讲解HTML(超文本标记语言)的基本语法和常用标签,以及如何使用HTML构建网页结构和内容。CSS样式设计:介......
  • 前端学习-flutter学习-004-状态管理
    《Flutter实战·第二版》Widget管理自身状态:自己继承StatefulWidget,自己内部设置变量(State)并进行管理父Widget管理子Widget的状态:parent继承自StatefulWidget,设置变量及函数,传递给child;child继承自StatelessWidget混合状态管理:既接受来自parent的变量和函数,自己继承自Stateful......
  • 前端笔记——一些很容易忽略,但是经常问的东西
    1.JS的基本类型-数字、字符串、布尔型、空、未定义:Number、String、Boolean、null、undefined。引用类型-函数、对象、数组:function、Object、Array。undefined和null的区别:前者是未定义,也就是不存在的意思;后者是值为空,typeof返回的值是Object,也就是对象。但其实null并不......
  • 前端JS特效第19集:HTML5鼠标跟随星星光标特效
    HTML5鼠标跟随星星光标特效,先来看看效果:部分核心的代码如下(全部代码在文章末尾):<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml">......
  • 前端JS特效第20集:HTML5图片瀑布流带筛选功能代码
    HTML5图片瀑布流带筛选功能代码,先来看看效果:部分核心的代码如下(全部代码在文章末尾):<!DOCTYPEhtml><htmllang="en"class="no-js"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,init......
  • 前端JS特效第21集:HTML5响应式多种切换效果轮播大图切换js特效代码
    HTML5响应式多种切换效果轮播大图切换js特效代码,先来看看效果:部分核心的代码如下(全部代码在文章末尾):<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999......
  • 前端JS特效第22集:html5音乐旋律自定义交互特效
    html5音乐旋律自定义交互特效,先来看看效果:部分核心的代码如下(全部代码在文章末尾):<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>ChimeTime™</title><linkrel="stylesheet"href="css/style.css......
  • 前端react入门day06-ReactRouter
    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)目录什么是前端路由创建路由开发环境快速开始抽象路由模块路由导航什么是路由导航声明式导航编程式导航导航传参嵌套路由配置什么是嵌套路由嵌套路由配置默认二级路由404路由配......