空值合并操作符(??)

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

与逻辑或操作符(||)不同,逻辑或操作符会在左侧操作数为假值时返回右侧操作数。也就是说,如果使用 || 来为某些变量设置默认值,可能会遇到意料之外的行为。比如为假值(例如,'' 或 0)时。见下面的例子。

null ?? 20
undefined ?? 3
'' ?? 3
0 ?? 4# 20
# 3
# ''
# 0

可选链操作符( ?. ) 可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。

?. 操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空(nullish ) (null 或者 undefined) 的情况下不会引起错误,该表达式短路返回值

const dog = {prop: {name: '小七'}
}dog?.prop?.name

js中??和?.的意思相关推荐

  1. 在js中使用HashMap数据结构,在js中使用K,V数据结构

    首先是定义一个HashMap方法,做基类(复制在js中即可,然后引用) //简单的哈希表,begin function HashMap() {/** Map 大小 * */var size = 0;/ ...

  2. [JavaScript] 探索JS中的函数秘密

    函数长啥样? 把一些要重复使用的内容封装到函数内. function foo(title) {console.log(title) } foo('title') foo('dust') foo('he ...

  3. 在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查

    Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用JavaScript开发并且能够用在Node.JS环境中,易于使用,支持多SQL方言(dialect),.它当前支持M ...

  4. 在JS中最常看到切最容易迷惑的语法(转)

    发现一篇JS中比较容易迷惑的语法的解释,挺有用的,转载下,与大家分享: js中大括号有四种语义作用 语义1,组织复合语句,这是最常见的 Js代码  if( condition ) { //... }e ...

  5. js去el的map_转:el表达式获取map对象的内容 js中使用el表达式 js 中使用jstl 实现 session.removeattribute...

    原文链接: 总结: el表达式获取map对象的内容 后端: HashMap map1 = new HashMap(); map1.put("key1","lzsb&quo ...

  6. js中substr,substring,indexOf,lastIndexOf的用法

    js中substr,substring,indexOf,lastIndexOf等的用法 1.substr substr(start,length)表示从start位置开始,截取length长度的字符串 ...

  7. js中的各种宽高以及位置总结

    在javascript中操作dom节点让其运动的时候,常常会涉及到各种宽高以及位置坐标等概念,如果不能很好地理解这些属性所代表的意义,就不能理解js的运动原理,同时,由于这些属性概念较多,加上浏览器之 ...

  8. WKWebView Safari调试、JS互调、加载进度条、JS中alert、confirm、prompt

    主要内容 Safari调试 swift/OC与JS互调 增加加载进度条 支持JS中alert.confirm.prompt Safari调试 设置 -> safari --> 高级,开启J ...

  9. 彻底理解js中this

    相关博文:http://blog.csdn.net/libin_1/article/details/49996815 彻底理解js中this的指向,不必硬背. 首先必须要说的是,this的指向在函数定 ...

  10. 彻底理解js中this的指向

    首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然 ...

最新文章

  1. py3Dmol 简介、安装与入门
  2. 如何将模糊的图片变得清晰
  3. 计算机网络09年考研题,计算机网络考研真题及答案
  4. 关于编译器的一个问题
  5. java批量执行查询sql语句_详解MyBatis直接执行SQL查询及数据批量插入
  6. matlab 代谢流分析,代谢网络流分析进展及应用-生物在线.PDF
  7. ssm项目快速搭建(注解)-依赖
  8. EXPORT_SYMBOL使用
  9. C 怎么读取Cpp文件_opencv从yaml文件中读取矩阵(c++)
  10. linux编译ffmepg,在Ubuntu下编译FFmpeg
  11. Java异常持久化,Log4j进行日志的数据库持久化,说SQL语法异常。
  12. Hadoop集群配置搭建
  13. 【BZOJ1096】仓库建设,斜率优化DP练习
  14. kotlin泛型类、泛型接口
  15. android 1到100000 正则,day13 Java学习(常见对象正则表达式)
  16. 嵌入式操作系统内核原理和开发(实时系统中的定时器)
  17. 字符串当id用 转换成json对象
  18. file Java 读取_Java读取文件方法汇总
  19. ubuntu18.04下载显卡驱动+CUDA+CUDNN
  20. 制作svg格式矢量图

热门文章

  1. 惠普暗夜精灵2怎么打开后盖_#原创新人# 拆机加内存 — HP 惠普 暗影精灵Ⅱ代 开箱...
  2. iphone删了计算机,涨知识:iPhone隐藏的功能,不止一个计算机滑动删除而已
  3. Infinity使用心得
  4. ESP32 / ESP8266实时图表中的绘图传感器读数
  5. 数字签名和公钥,密钥加密机制
  6. 苹果明日发布第二财季财报 此前预计营收550到590亿美元
  7. 微信小程序开发文本框无法输入文字
  8. 弘辽科技:今年电商人的“春节不打烊”变了
  9. 温馨提示-繁盛农场隐私政策
  10. 力扣P22 括号生成的DFS思路