新增操作符
可选链(Optional chaining)
-
可选链操作符(
?.
)允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。 -
?.
操作符的功能类似于.
链式操作符,不同之处在于,在引用为空nullish(null 或者undefined)的情况下不会引起错误,该表达式短路返回值是undefined
。与函数调用一起使用时,如果给定的函数不存在,则返回undefined
。let temp = obj.first; let nestedProp = ((temp === null || temp === undefined) ? undefined : temp.second); //可选链写法: let nestedProp = obj.first?.second
// ES2019的写法 function doSomething(onContent, onError) { try { // ... do something with the data } catch (err) { if (onError) { // 校验onError是否真的存在 onError(err.message); } } } // 使用可选链进行函数调用 function doSomething(onContent, onError) { try { // ... do something with the data } catch (err) { onError?.(err.message); // 如果onError是undefined也不会有异常 } }
空值合并运算符
空值合并操作符(**??
**)是一个逻辑操作符,当左侧的操作数为 null或者 undefined时,返回其右侧操作数,否则返回左侧操作数。
与[逻辑或操作符||]不同,逻辑或操作符会在左侧操作数为[假值]时返回右侧操作数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!