es6 基础学习之?. ??之类的相关

ES6 和后续版本中的可选链(Optional Chaining)和空值合并(Nullish Coalescing)

可选链(Optional Chaining)?.

可选链运算符(?.)允许你在尝试访问对象的某个属性时不必明确验证该对象是否存在。如果该对象不存在,表达式会短路,返回 undefined

基本用法:

javascript 复制代码
const user = {
  name: 'John',
  address: {
    street: '123 Main St',
  },
};

// 普通方式
const street = user && user.address && user.address.street;

// 使用可选链
const streetWithOptionalChaining = user?.address?.street;

console.log(street); // 输出 "123 Main St"
console.log(streetWithOptionalChaining); // 输出 "123 Main St"

可选链也可以用于函数调用:

javascript 复制代码
const result = someObject?.someMethod?.();

如果 someMethod 存在并且是一个函数,那么它会被调用;否则,result 会被赋值为 undefined

空值合并(Nullish Coalescing)??

空值合并运算符(??)用于为变量设置默认值。当你希望仅在变量为 nullundefined 时使用默认值,而不是依赖于变量的所有假值(如 0''false 等),这个运算符会非常有用。

基本用法:

javascript 复制代码
const value = null;
const defaultValue = 'Default Value';

const result = value ?? defaultValue;
console.log(result); // 输出 "Default Value"

结合使用

这两个运算符经常会被结合使用,以便更简洁地处理嵌套属性和设置默认值。

javascript 复制代码
const user = {
  name: 'John',
  preferences: {
    theme: 'Dark',
  },
};

const theme = user?.preferences?.theme ?? 'Light';

console.log(theme); // 输出 "Dark"

在这个例子中,如果 userpreferencesnullundefined,则 theme 将被设置为默认值 'Light'

这些是 ES6 和后续版本中可选链和空值合并的基本用法。这两个运算符都提供了一种更简洁、更安全的方式来处理 nullundefined,从而让代码更加易读和可维护。希望这些信息能帮助你更好地理解和使用这些特性。

相关推荐
志尊宝12 分钟前
Vue3 零基础每日笔记(021):class 与 style 动态绑定——对象、数组、三元表达式写法汇总
前端·vue.js·笔记·前端框架·html5
夏幻灵13 分钟前
Vue / React 列表渲染中的 key:为什么没有 key,Checkbox 可能“对号跑错”?
前端·javascript·vue.js
Bs_MoneyMagnet27 分钟前
基于springboot+vue的旅游行程分享与推荐小程序的设计与实现 源码+文档
java·vue.js·spring boot·后端·微信小程序·毕业设计·计算机毕业设计
岁岁种桃花儿40 分钟前
Vue组件第六篇:Vue单文件组件
开发语言·前端·javascript·vue.js
毕业设计70313 小时前
(免费领源码) 基于微信小程序的预制菜商城的设计与实现25172-java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
vue.js·python·mysql·微信小程序·pycharm·微信开发者工具·推荐算法
xifangge202513 小时前
AGENTS.md 怎么写?涵盖 Java、Python、Vue、Go 的 8 套开箱即用模板
java·vue.js·python
雪芽蓝域zzs14 小时前
vue解构平铺VS对象包裹
前端·javascript·vue.js
Bs_MoneyMagnet18 小时前
基于springboot+vue的旅游景区点评系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring·旅游
ID346107442018 小时前
【课程设计】基于Spring Boot+Vue的校园共享无人机服务系统设计与实现-计算机毕设 附源码44219
javascript·vue.js·spring boot·python·node.js·php·课程设计