Optional Chaining 进入 ES2020,不用满屏`x && x.yyy`了
微软 TypeScript 程序经理 Daniel Rosenwasser 宣布 Optional Chaning(?. )进入 TC39 Stage 4 状态,这意味着该特性现在已经是 ES2020 标准的一部分。
Optional Chaining 最初是 TypeScript 的 issue 跟踪器上第 16 个 issue,于 5 年前提交,要知道目前总共有多达 23000 个 issue。当时 TC39 还没有正式提案,这些年来开发者一直要求实现该特性,但是为了不与 ECMAScript 建议冲突,迟迟没有实现,相反 TS 开发团队一直在帮助推动该提案实现标准化,并最终推及所有 JavaScript 与 TypeScript 开发者。
TypeScript 就在上个月发布的 3.7 版本中,正式带来了 Optional Chaining 特性,现在则更进一步,该特性进入了 ECMAScript 标准。
Optional Chaining 特性主要用于保护出现在属性路径中 null 和 undefined 值,像 C# 等语言中已经有用于访问属性链的语法糖,可以在对象层次结构中的任何地方处理遇到的 null 和 undefined 情况,使它可以正常执行,而不会抛出错误。
具体来讲,在向树状结构深处进行属性值访问时,通常需要检查中间节点是否存在:
var street = user.address && user.address.street;
许多 API 返回一个对象或 null/undefined,并且可能只想在结果不为 null 时从结果中提取属性:
var fooInput = myForm.querySelector('input[name=foo]') var fooValue = fooInput ? fooInput.value : undefined
Optional Chaining 运算符允许开发人员直接用简单的方式处理这种情况,而不用进行重复性操作,或者使用临时变量分配中间结果:
var street = user.address?.street var fooValue = myForm.querySelector('input[name=foo]')?.value
因为是保护访问属性链时的 null 与 undefined,所以 Optional Chaining 运算符也叫做“安全导航运算符”,TC39 标准中给出的该运算符是“?.”,它的语法可以适用于三种场景:
obj?.prop // 自判断静态属性访问 obj?.[expr] // 自判断动态访问 func?.(...args) // 自判断函数或方法调用
对于开发者来说,再也不用看到满屏`x && x.yyy`了。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
gtoken v1.3.7 发布,支持 GF 最新版本 v1.10.0
本次更新: 1. gf升级为V1.10.0 2. 修改版本兼容性相关代码 介绍 基于gf框架的token插件,通过服务端验证方式实现token认证;已完全可以支撑线上token认证,并支持集群模式;使用简单,大家可以放心使用; 支持单机gcache和集群gredis模式; # 配置文件 # 缓存模式 1 gcache 2 gredis cache-mode = 2 支持简单token认证 加入缓存自动续期功能 // 注:通过MaxRefresh,默认当用户第五天访问时,自动再进行五天续期 // 超时时间 默认10天 Timeout int // 缓存刷新时间 默认为超时时间的一半 MaxRefresh int 框架使用简单,只需要设置登录验证方法以及登录、登出、拦截路径即可; github地址:https://github.com/goflyfox/gtoken gitee地址:https://gitee.com/goflyfox/gtoken 安装教程 gopath模式:go get https://github.comgoflyfox/gtoken 或者 使...
- 下一篇
上云安全必须了解的安全产品-阿里云盾
据国家互联网应急中心(CNCERT)今年4月发布的《2018年我国互联网网络安全态势报告》显示,CNCERT协调处置网络安全事件约10.6万起,其中安全漏洞、网页仿冒事件最多。而在各类型网络安全事件数量中,云平台上的攻击次数、被篡改网站数量均占比超过50%。同时,木马和僵尸网络恶意程序控制端IP地址数量占比达59%,这表明来自云平台的网络攻击不可小觑。 为了切实有效地拦截黑客扫描和入侵行为,最大程度减少网站被黑、被挂黑链等安全事故发生,阿里云通过自主研发,推出了自己的分布式大规模防护产品——云盾,能有效拦截黑客扫描和入侵行为,极大增强云主机的安全性,为用户的网站安全运营保驾护航。 告别挂马、攻击、黑链和恶意代码,网站运行更安全据CNCERT分析原因,云平台成为网络攻击的重要目标主要是因为云服务存在便捷性、可靠性、低成本、高带宽和高性能等特性,攻击者更多的利用云平台设备作为跳板机或控制端发起网络攻击。鉴于这种情况,阿里云自主开发了一套大数据安全防护系统——云盾,可快速且精准识别网站和服务器的漏洞扫描、入侵检测,将漏洞扫描、在线挂马、漏洞入侵等非法行为“快准狠”地拦截在入口之外。云盾可以极...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启