当前位置: 首页 > news >正文

js语法中 ?. 和 ?? 的含义以及用法说明

常用的是 ?. 至于什么意思 我们来用例子演示

?.

在这里插入图片描述

const obj = {hh: 'xxx'}
let res = obj?.data?.list
console.log(res)  // undefined
console.log(obj?.hh?.length)  //3
console.log(obj?.hh) // xxx

作用就是判断这个对象(this.element)下的(Object)下的(value)下的(length)是否为null或者undefined,
(如果没有加 ?. ,有的时候会报length是null 的错误,或者说 null length 没有定义,然有了?. 就省去了好多麻烦)
当其中一链为null或者undefined时就返回undefined,这样即使中间缺少一个属性也不会报错,

??

?? 双问号后面接的就是默认值。 当然是在没有值得时候会默认 ?? 后边的值,但是有了默认值 ,那么 ?? 后的值也就不会在去默认了,也就是变成了 赋默认值。就跟三木运算(let x = 6,y = 2;
z = x>y ? x-y : x+y; )一样,不满足会执行 : 后边的

值得注意的是 :?? 是忽视 null ,undefined 等错误的值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

var ibo = {}
console.log(ibo?.a ?? 111) //  111
var ibo = {a:{b:1}}
console.log(ibo?.a?.b ?? 111) //1

console.log(1??'2') //  1
console.log(null ?? "xx") // xx
undefined
console.log(undefined ?? "xx") //  xx
console.log( ' '?? "xx")  //  空值

相关文章:

  • 工作中MySql常用操作
  • 命令模式-对象行为型
  • git 分支 合并 具体执行过程 详细
  • 2017届校招提前批面试回顾
  • 前端 通过id 查询详情,让form表单中某地址展示成超链接,点击跳转并查看情况
  • 运用Keil uVision新建一个工程
  • 前端 react 项目 常见的 面试题
  • Jquery 异步提交表单(post)
  • vue 项目 对 echarts 组件 的封装使用
  • 用户故事——需求的占位符
  • 截取视频中的 ‘暂停’ 操作,并让他自动不暂停
  • SQL学习之HAVING过滤分组
  • 项目中 处理后端返回多数据值, 数组形式 展示tab 列表上
  • ES6第一篇
  • 前端开发中,会遇到字符串填充的问题,padStart() 和 padEnd()
  • ES6指北【2】—— 箭头函数
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • CSS魔法堂:Absolute Positioning就这个样
  • java 多线程基础, 我觉得还是有必要看看的
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Making An Indicator With Pure CSS
  • mockjs让前端开发独立于后端
  • Nacos系列:Nacos的Java SDK使用
  • OSS Web直传 (文件图片)
  • PHP 的 SAPI 是个什么东西
  • SAP云平台里Global Account和Sub Account的关系
  • Swift 中的尾递归和蹦床
  • 缓存与缓冲
  • 前端之React实战:创建跨平台的项目架构
  • 全栈开发——Linux
  • 实现菜单下拉伸展折叠效果demo
  • No resource identifier found for attribute,RxJava之zip操作符
  • kubernetes资源对象--ingress
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​力扣解法汇总946-验证栈序列
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (13)Hive调优——动态分区导致的小文件问题
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .net开发引用程序集提示没有强名称的解决办法
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • :“Failed to access IIS metabase”解决方法
  • @DateTimeFormat 和 @JsonFormat 注解详解