js 逻辑空分配双问号语法 、双竖杠语法 与 可选链语法
可选链的语法允许开发者访问嵌套得更深的对象属性,而不用担心属性是否真的存在。也就是说,如果可选链在挖掘过程遇到了null或undefined的值,就会通过短路(short-circuit)计算,返回undefined,而不会报错。
逻辑空分配运算符仅在空值或未定义(null or undefined)时才将值分配给 a
双问号:当前面的值为 null 、undefined 时,就返回后面的值,否则取前面的值
user.userinfo.age ?? 0
双竖杠:只要前面的值转为布尔值为false时,就取后面的值(如:undefined、null、false、空字符串、数值0)
思考:双问号更适合在不知道变量 是否定义 或者 是否赋值 时的场景使用
?.可选链: 如果要表示
let test = {value: {a: '1222'}
}
如果要实现 test 存在时,返回 test.value,否则返回 undefined
则需要这样写:
let myvalue = test ? test. value : undefined
如果用可选链语法,则可以简写为:
let myvalue = test ?. value
如果要返回 test.value.a ,则可以简写为:
let a = test ?.value?.a || 10 //如果test.value.a不存在的话 (为null或undefined) ,则返回10固定值
参考:
认识可选链和双问号语法_前端发现的博客-CSDN博客
vue项目支持js新语法可选链“?.“以及逻辑空分配(双问号)“??“_鸽子.Luna的博客-CSDN博客_vue 双问号
js 逻辑空分配双问号语法 、双竖杠语法 与 可选链语法相关推荐
- js中,双问号??和双竖杠||的区别
它们的共同特点是语法一样,前面是值,后面也是值,中间是符号: 都是根据前面的值来决定到底取前面还是取后面. 双竖杠|| : 前面的值转为布尔值为 false 时,就取后面,否则取前面 如undefi ...
- js中双问号??和双竖杠||的区别
双竖杠||,将前面的值自动转为布尔值并且为false时,就取后面,否则取前面,如undefined.null.false.空字符串和数值0 例:console.log(0||33)打印出33 而双问号 ...
- C#中双问号、双冒号等几个特殊关键字
@:放在字符串的前面,直接让字符串原样输出.常用于:sql语句.路径等 string sql = @"select * from tablename where id = '1'" ...
- 双问号??在 js 中的应用
1.什么是双问号 双问号是ES2020 的一个新特性,它的作用是,当一个表达式为 null 或 undefined 的时候为变量设置一个默认值. ECMAScript® 2020 Language S ...
- php 双问号 语法,JS 新语法「可选链」「双问号」已进入 Stage 3
你可能写过这样的代码 var street = user.address && user.address.street; 复制代码 有了这个新语法,你可以写成 var street = ...
- js 问号点操作符 (可选链 双问号)
配置使用可选链?. 和 双问号?? 语法 一.什么是可选链 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Oper ...
- 【JS】问号点(?.)和双问号(??)的用法
1. 问号点(?.) 当访问多层对象属性(比如 res.data.list)时,如果属性res.data为空,则会报引用错误,为此我们不得不这么处理: let dataList = res & ...
- vue 双问号语法编译报错
如上图,使用了??语法,编译报错,遇到三次,总是忘记解决方案,做个记录,供参考 解决方案: 首先,升级babel到7.0以上,升级操作如下: npm install babel-upgrade -g ...
- 【JS】问号点和双问号的用法
1. 问号点(?.) 当访问多层对象属性(比如 res.data.list)时,如果属性res.data为空,则会报引用错误,为此我们不得不这么处理: 1 let dataList = res ...
最新文章
- block(六)循环引用-b
- mysql 表的timestamp为自动添加
- combobox 取消记忆功能_南京长江大桥桥头堡空间改造设计,记忆与纪念的共鸣
- c++ primer 5th第13章拷贝控制知识点和自编习题答案
- 判断扫码是支付宝还是微信
- 深入理解Activity启动流程(二)–Activity启动相关类的类图
- linux下远程登录如何退出,Ubuntu 中rdesktop如何切换和退出远程桌面
- .Net判断一个对象是否为数值类型探讨总结(高营养含量,含最终代码及跑分)...
- Linux换行符与windows换行符
- 【无标题】计算机一级考试MS OFFICE选择题题库10套及答案
- 【高级UI】【027】RecyclerView侧滑源码解析
- iOS 1 到 iOS 10 ,我都快老了
- 高等数学笔记-苏德矿-第十章-曲线积分和曲面积分-第七节-高斯公式与斯托克斯公式
- 书架html5,基于HTML5 Canvas的CSG构造实体几何书架
- 国产化服务器安装Mysql数据库
- DELPHI各种颜色表达式
- 使用window小娜实现文本转语音
- “微风”吹拂,心旷神怡-微营销指导笔记1-前言
- 跨考计算机面试英语自我介绍,2019考研复试面试英语自我介绍范文(1)
- python计算机视觉编程——立体图像之计算视差图
热门文章
- OPPO Enco Free2质量怎么样?降噪表现突出路上不怕吵
- python画图工具turtle、matplotlib学习
- 蓝桥真题 2019_3_数列求解
- 3.0、Hibernate-延迟加载 1
- 01 【eCharts样式定制系列】柱状图修改柱状颜色、柱状形状等
- 计算机软件水平考试哪个比较容易,高手心得:计算机软件水平考试经验谈
- 2020适合计算机专业的笔记本电脑,2020年,如何选择一款适合自己的笔记本电脑,全面解析指南...
- 连接服务器密码显示过期,登录服务器密码过期
- python-数组A按照数组B顺序排序
- 老板,你请了多少店员帮你赶客?