网站首页 > 技术文章 正文
?? 和 ?. 是 ES2020 新增的两个操作符。
?? 是空值合并运算符,用于处理变量可能为 null 或 undefined 的情况。
它的作用是,如果左侧表达式的值为 null 或 undefined,则返回右侧表达式的值,否则返回左侧表达式的值。
例如:
const foo = null ?? 'bar'; // foo 的值为 'bar'
const baz = 'baz' ?? 'qux'; // baz 的值为 'baz'
const quux = undefined ?? 'quux'; // quux 的值为 'quux'
?. 是可选链操作符,用于简化访问对象属性的代码。
它的作用是,如果左侧表达式的结果为 null 或 undefined,则不会继续访问该表达式的下一级属性,而是直接返回 undefined。
例如:
const person = {
name: 'Alice',
age: 20,
address: {
city: 'New York',
state: 'NY',
},
};
const city = person.address?.city; // city 的值为 'New York'
const country = person.address?.country; // country 的值为 undefined
在这个例子中,如果 person.address 不存在,那么 person.address.country 的访问就会抛出错误。但是使用 ?. 操作符,如果 person.address 不存在,就会直接返回 undefined,避免了抛出错误。
猜你喜欢
- 2024-10-16 JS中(a==1 && a==2 && a==3)可以在JavaScript中计算为“true”吗?
- 2024-10-16 JavaScript 的这个难点,毁掉了多少程序员
- 2024-10-16 前端开发之彻底搞懂this指向(前端this指向问题)
- 2024-10-16 JavaScript中的变量声明和作用域(一)
- 2024-10-16 Top 26 JavaScript面试问题和答案
- 2024-10-16 JS 经典实例知识点整理汇总【实践】
- 2024-10-16 苦恼于JavaScript中的reduce函数?五分钟讲透彻
- 2024-10-16 前端基础:JavaScript(前端基础题)
- 2024-10-16 一句话彻底理解JS中的回调(Callback)函数
- 2024-10-16 面试中被问到最多的 19 个 JavaScript 问题
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)