javascript - 参数后的问号,如 obj.val?.prop
问题描述
我在这样的代码条件行中遇到了someObject.arrParam?.length
。那是什么语法?那个问号的东西怎么叫?我知道一个用于函数参数的可选运算符。这是它的用法变化吗?以前没见过。
解决方案
这在 JavaScript中称为可选链。它允许在不引发空异常的情况下深入研究对象。
例如:尝试运行下面的代码片段,然后取消注释该行并运行它以了解一个工作示例。
let employeeA ={ name: "Dane", address : { city:"London"}}
let employeeB ={ name: "John"}
console.log(employeeA.address.city)
// console.log(employeeB.address.city) <---- this will raise an error
console.log(employeeB.address?.city) // <--- this wont
这是在最新的 ESNext 迭代中作为新功能引入的。
NodeJS 支持:https ://node.green/#ES2020-features-optional-chaining-operator-----
当前浏览器支持:https ://caniuse.com/#feat=mdn-javascript_operators_optional_chaining
更多详细信息: https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining
推荐阅读
- coldfusion - 在 Lucee 中产生 perlin 噪声的最简单方法是什么?
- struct - structAppend 与重复
- c# - 如何在 DotRas C# 中删除 VPN 连接 (.pbk)?
- java - junit 测试中的 JPA 存储库为空
- java - 存储由 Handler 运行的递归 Runnable 的运行计数的最佳方法?
- ios - SVG 使用和 IE/Safari iOS
- powerbi - Excel 公式到 Power Bi
- python - Seaborn 热图,单元格之间没有线条
- git - 如果 2 个开发人员在 master 分支上推送他们自己的代码怎么办?
- php - 通过 html 和 php 表单将数据插入 MySQL 数据库时遇到问题