Javascript即将迎来Optional Chaining
时间:2022-05-05
本文章向大家介绍Javascript即将迎来Optional Chaining,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
它是什么?
Optional Chaining 使我们能检查一个对象上面是否存在某属性。其它一些语言有类似的特性。C# 例如,有 Null Conditional 操作符很像提案中的 Optional Chaining。
我们为何需要它?
你是否曾经在使用对象或数组的属性之前,检查它是否存在吗?如果你不记得,下面展示一下:
if(specimen && specimen.arms && specimen.arms.length > 2)
console.log("This is probably an alien");
如果我们不做检查,可能会遇到下面的错误:
因为,specimen 存在,但它没有 arms 属性。因此,当我们在它身上获取length属性时就会报错。
提案是怎样的?
取代上面的写法,我们可以使用 optional chaining 写出如下代码:
if(specimen?.arms?.length > 2)
console.log("This is probably an alien");
不管怎样,我们应该记住 Optional Chaining 操作符是 ?. 而不是 ? ,这就意味着当我们从数组中获取数据时,应该如下:
var firstArm = specimen?.arms?.[0]; //CORRECT
var secondArm = specimen?.arms?[1]; //WRONG
相似的,当我们检查一个方法时,如下:
var kickPromise = specimen?.kick?.(); //CORRECT
var punchPromise = specimen?.punch?(); //WRONG
在上例中,在调用方法之前,我们先检查 kick 是否存在。
它是如何工作的?
这个操作符检查 ?. 左边的值是否为 null 或 undefined。如果是,这个表达式就终止然后返回 undefined。否则,这个表达式继续执行就像没有错误一样。
- SNA中:中心度及中心势诠释(不完整代码)
- 教程 | 基于计算机视觉使用Python和OpenCV计算道路交通
- 干货 | MVP模式在携程酒店的应用和扩展
- memlock过低导致的数据库性能问题(r6笔记第10天)
- OpenCV和SVM分类器在自动驾驶中的车辆检测
- 自动驾驶的模型预测控制
- 【专业技术】使用html5的十大原因
- 第五课:推理结果的可视化
- 第四课:模型的使用
- 【Java概念学习】--数组的初始化
- linux下重命名文件或文件夹使用mv既可实现。
- 第三课:把tensorflow,模型和测试数据导入Android工程
- D-Link 路由器信息泄露和远程命令执行漏洞分析及全球数据分析报告
- Wordpress安全架构分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 虚拟机中centos修改时间的方法
- Ubuntu 18.04 Server 设置静态IP 的方法
- 嵌入式Linux重启QT应用程序的简单办法(基于QT4.8 qws)
- CentOS下MySQL的彻底卸载的几种方法
- centos7中安装Android SDK的方法步骤
- centos配置ssh免密码登录后仍要输入密码的解决方法
- CentOS7.2安装Nginx的方法步骤
- CentOS安装Python2.7与Python2.6并存的方法
- 详解Centos下YUM安装PHP的两种方式
- linux下make命令实现输出高亮的方法
- Ubuntu彻底卸载MySQL、Apache2和Php的方法教程
- linux下如何创建守护进程的步骤
- ubuntu系统中/etc/rc.local和/etc/init.d/rc.local的区别详解
- centos6.8下hadoop3.1.1完全分布式安装指南(推荐)
- 批处理模式下运行 top 命令的方法