JS 问号?妙用
// 1. ? var obj ={a:1,b:2} obj.c.a // 会报错:Uncaught TypeError: Cannot read properties of undefined,因为obj.c 不存在 解决方法: obj.c?.a // 等价于 obj.c && obj.c.a // ?是可选链操作符,在引用为空null 或者 undefined 的情况下不会引起错误,该表达式短路返回值是 undefined // 2. ?? // 空值合并运算符,在ES2020中新增,可以用来保证值不为 null 或者 undefined var a1=""; var b1=a1??"default1" // "" var a2=undefined; var b2=a2??"default2" // default2 var a3=null; var b3=a3??"default3" // default3 // 注:(??) 直接和 AND(&&)和 OR(||)一起用会报错,如果要一起用,记得单独给 ?? 左右表达式加括号,如: b=(a??"dffdfdf") || 123 // dffdfdf b=(a??"dffdfdf") && 123 // 123 // 3. 逻辑或(||) // 空值合并运算符将跳过 null,undefined // 逻辑或运算符会跳过 null,undefined,false false ?? 'hello' // false false || 'hello' // 'hello' // 如果不想用要虚值,可以使用 ||。如果只想检查是否为 null 或 undefined,就用 ??
分类:
javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南