php 双问号 语法,JS 新语法「可选链」「双问号」已进入 Stage 3
你可能写过这样的代码
var street = user.address && user.address.street;
复制代码
有了这个新语法,你可以写成
var street = user.address?.street
复制代码
你可能还写过这样的代码
var fooInput = myForm.querySelector('input[name=foo]')
var fooValue = fooInput ? fooInput.value : undefined
复制代码
有了新语法后,你可以写成
var fooValue = myForm.querySelector('input[name=foo]')?.value
复制代码
但在实际使用中,还是会有些不便,比如
const result = response?.settings?.n || 100
复制代码
你希望如果 response 或者 response.settings 或者 response.settings.n 不存在(值为 null 或者 undefined)时,result 保底值为 100。
但是上面代码在 n 为 0 的时候,也会让 result 变成 100,你实际上希望此时 result 为 0。
于是你只好把代码写成这样
const result = response?.settings?.n === undefined ? 100 : response?.settings?.n
复制代码
或者你封装一下
const result = fetch(response?.settings?.n, 100)
复制代码
现在,你可以用另一个新语法——「双问号语法 Nullish Coalescing」——来简化代码:
const result = response?.settings?.n ?? 100
复制代码
这个 ?? 的意思是,如果 ?? 左边的值是 null 或者 undefined,那么就返回右边的值。
有了这两个语法,估计以后 JS 代码中就会全是问号了!哈哈。
php 双问号 语法,JS 新语法「可选链」「双问号」已进入 Stage 3相关推荐
- 一阶段P1~P96(PJavaScript基础语法-dom-bom-js-es6新语法-jQuery- 数据可视化echarts 黑马pink老师前端入门基础视频教程(持续更新)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JavaScript笔记 计算机编程基础 1. 变 量 \color{red}{1. 变量} 1.变量 1. 变量概述 2. 变量的使 ...
- html中单引号与双引号区别,JS 和 HTML 中的单引号与双引号
JS中的单引号与双引号 HTML中的单引号与双引号很简单,就是两个字符实体: 显示 描述 实体名称 实体编号 " 双引号.引号 " " ' 单引号.撇号 ' ' x 1 ...
- 可选链表达式与双问号表达式
x?.y 如果x和y其中一个不存在,就返回undefined 如果 ?? 左边的值是 null 或者 undefined,那么就返回右边的值. 以下为代码运用案例 res可能有以下多种结果的情况 va ...
- 四阶段P188~P(PJavaScript基础语法-dom-bom-js-es6新语法-jQuery- 数据可视化echarts 黑 马pink老师前端入门基础视频教程(持续更新)
JavaScript课堂笔记 JavaScript 简单类型与复杂类型 1. 简单类型与复杂类型 2. 堆和栈 3. 简单类型的内存分配 4. 复杂类型的内存分配 5. 简单类型传参 6. 复杂类型传 ...
- php单双引号拼接,js字符串拼接中关于单引号和双引号的那些事
在js开发中一般我们多多少少都会用到字符串拼接,新手们经常会遇到各种错误,其中关于字符串拼接的问题尤其重要,今天来谈一谈. 1.常用字符串拼接 当我们从后台请求到数据时,传统渲染我们就会将请求到的数据 ...
- 「区块链游戏不是未来」—— 融了1600万美金的Mythical Games如是说
导读:先预告一下,DappReview下一篇文章将告诉大家EOS Dapp现有的真实情况,远没有大家想得那么乐观.但诗和远方还是有的,不论是国内大厂的私有区块链+游戏的尝试,还是育碧年中公布的< ...
- ES11新特性_可选链操作符---JavaScript_ECMAScript_ES6-ES11新特性工作笔记064
然后我们去看一下es11提供的这个可选链操作符 可以看到如果我们有个main方法,然后有个config参数 然后我们调用这个main方法 然后写入,db和cache,传入这个对象. 然后我们之前调用的 ...
- js 逻辑空分配双问号语法 、双竖杠语法 与 可选链语法
可选链的语法允许开发者访问嵌套得更深的对象属性,而不用担心属性是否真的存在.也就是说,如果可选链在挖掘过程遇到了null或undefined的值,就会通过短路(short-circuit)计算,返回u ...
- js 问号点操作符 (可选链 双问号)
配置使用可选链?. 和 双问号?? 语法 一.什么是可选链 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Oper ...
最新文章
- 为什么不需要对独立的jre进行环境变量配置
- ajax返回头部页面,ajax getResponseHeader获取中文响应头
- python3 识别图片文字
- SharePoint GridView的使用2——DataSourceView的使用
- sp 导出unity哪个_GitHub上发现的一个导出Unity3D场景数据的工具
- php性能测试xhprof,PHP性能分析之Xhprof的使用
- Nginx学习总结(14)——Nginx配置参数详细说明与整理
- 运算符重载——函数调用运算符重载
- 智能交通助力城市道路行车提速15%
- 软件工程 第四章 概要设计
- 《Head First》 MVC运用的设计模式
- 初中参观机器人博物馆的作文_参观足球机器人实验室600字作文
- 软件版本 —— Alpha、Beta、RC版本的区别
- (毕业设计资料)基于单片机自行车码表系统设计
- 三菱Q系列PLC基本指令讲解
- 一个古老故事--线程和线程池的故事
- 计算机表示图形的几种方法。
- 蚂蚁金服mPaaS 3.0发布 助力客户智能化构建超级App生态
- win11_中文包/中文输入法(微软拼音)设置/键盘/输入法移除win10启用单词输入法/基于英语语言包的美式键/半角切换设置开关
- 常见的网站攻击方式和防护方式
热门文章
- 多线程面试题c Linux,【多线程Linux面试题】面试问题:小伙用C语言熬… - 看准网...
- crt查看oracle安装目录,ORACLE 11g数据库安装步骤
- Python 使用pdfplumber 提取PDF页面表格的内容
- Java中的引用数据类型-BigDecimal
- linux的网卡部分
- python pop函数 索引_[python] 字典和列表中的pop()函数
- java dataurl_FileReader生成图片dataurl的分析
- linux的cache过高的原因定位与解决echo 3 > /proc/sys/vm/drop_caches
- python函数如何结束_如何在Python中结束函数
- 定义在计算机中怎么翻译,Profile在计算机中翻译成什么