ES2020让代码更优美的运算符 (?.) (??)

yizhihongxing

ES2020(也称为ES11)引入了两个新的运算符,即可选链运算符(?.)和空值合并运算符(??),以使JavaScript代码更加简洁、简单和易于维护。

可选链运算符(?.)

可选链运算符(?.)可用于在不确定对象是否存在的情况下,可以访问对象或其属性的属性。这是一个非常实用的特性,因为它可以帮助我们避免在访问对象的属性时引发"TypeError"错误,同时也可以保持代码的简洁性。

使用可选链运算符访问嵌套属性

在访问嵌套属性时,可选链运算符非常有用。例如:

const person = {
  name: 'Alice',
  address: {
    city: 'Beijing'
  }
};

const cityName = person.address?.city; // 'Beijing'
const zipCode = person.address?.zipCode; // undefined

在上面的示例中,我们使用可选链运算符(?.)来访问"person"对象中的嵌套属性"address.city"。如果"address"对象不存在,则返回undefined。同样,我们使用可选链运算符访问属性"address.zipCode"也将返回undefined。

使用可选链运算符调用函数

可选链运算符还可以很方便地用于调用可能不存在的方法。例如:

const person = {
  name: 'Alice',
  getAddress() {
    return this.address;
  }
};

const zipCode = person.getAddress()?.zipCode; // undefined

在上面的示例中,我们使用可选链运算符(?.)来调用可能不存在的"getAddress"函数。如果"getAddress"函数存在并返回一个对象,则我们可以访问该对象的属性"zipCode"。否则,将返回undefined。

空值合并运算符(??)

空值合并运算符(??)可用于在变量可能为null或undefined的情况下提供默认值。它可以用于任何类型的值,包括对象、数组和函数。它的作用是检查变量是否为null或undefined,并在不是null或undefined的情况下返回该变量的值。如果变量是null或undefined,则返回默认值。

使用空值合并运算符提供默认值

让我们看看一个具体的示例:

const name = null ?? 'Unknown'; // 'Unknown'

在上面的示例中,"name"的值是null,但是我们使用空值合并运算符(??)提供了一个默认值"Unknown"。因此,"name"的值将是"Unknown"。

使用空值合并运算符提供默认函数

空值合并运算符还可以用于提供默认函数,以便在变量为null或undefined的情况下调用该函数并返回其结果。例如:

function getDefaultName() {
  console.log('Calling getDefaultName');
  return 'Unknown';
}

const name = null ?? getDefaultName(); // Calling getDefaultName
                                      // 'Unknown'

在上面的示例中,"name"的值是null,我们使用空值合并运算符(??)提供了一个默认函数"getDefaultName"。因此,"getDefaultName"将被调用,并返回"Unknown"。这就是为什么我们可以看到"Calling getDefaultName"打印到控制台的原因。

总之,可选链运算符(?.)和空值合并运算符(??)是非常实用的新特性,它们可以帮助我们更轻松地编写简单而且易于维护的JavaScript代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ES2020让代码更优美的运算符 (?.) (??) - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • jquery+ajax实现注册实时验证实例详解

    下面是我对于“jquery+ajax实现注册实时验证实例详解”的完整攻略: 1. 基本概念 在进行 jquery+ajax 实现注册实时验证的过程中,我们需要先了解以下几个基本概念: jQuery:一种常用的 JavaScript 库,拥有许多实用函数和方法,方便我们编写 JavaScript 代码。 Ajax:一种网页编程技术,通过异步请求获取数据而不需要…

    JavaScript 2023年6月10日
    00
  • 使用webstorm进行javascript的Debug调试功能

    以下是详细讲解使用WebStorm进行JavaScript Debug调试功能的完整攻略: 约定 在本攻略中,我们使用WebStorm Version 2020.3.2,并假设你已经安装和配置好了WebStorm IDE。同时,我们使用以下的JavaScript代码示例: function sum(a, b) { return a + b; } consol…

    JavaScript 2023年6月11日
    00
  • 动态添加删除表格行的js实现代码

    下面我将为您详细讲解 “动态添加删除表格行的js实现代码” 的完整攻略。 目录 实现原理 添加表格行的示例代码 删除表格行的示例代码 总结 1. 实现原理 要实现动态添加删除表格行的功能,需要用到 JavaScript。其实现原理可以简单概括为:当用户点击“添加行”按钮时,就会触发一个事件,这个事件会执行 JavaScript 代码,将一行新的表格行添加到表…

    JavaScript 2023年6月11日
    00
  • javascript获取网页宽高方法汇总

    当我们需要编写一些Web应用或网站时,有时需要获取浏览器的宽度和高度等信息,以便根据宽高信息来做出一些响应式设计或适配不同尺寸设备的设计等。下面介绍一些获取网页宽高的方法。 方法一:获取浏览器窗口宽高 通过 window.innerWidth 和 window.innerHeight 可以获取浏览器窗口实际的宽高,这个方法可用于获取当前设备的可视区域大小。示…

    JavaScript 2023年6月11日
    00
  • HTML DOM Viewer

    HTML DOM Viewer 是一款用于查看 HTML DOM 结构的工具。下面将详细讲解 HTML DOM Viewer 的使用方法: HTML DOM Viewer 的安装 首先,在浏览器中搜索“HTML DOM Viewer”,在搜索结果中选择一个安全、可靠的网站进行下载。 点击下载按钮,等待下载完成。下载完成后,解压下载的压缩文件。 在解压出来的文…

    JavaScript 2023年6月11日
    00
  • ajax实现简单实时验证功能

    下面是“ajax实现简单实时验证功能”的攻略: 什么是Ajax实时验证 Ajax是一种用于创建快速动态Web网页的技术,通过在不刷新页面的情况下向服务器发送请求并获取响应数据,可以实现实时验证表单数据的功能。 通常在前端验证数据的时候,我们会通过JavaScript来实现,但是客户端验证容易被用户绕过,所以我们还需要在后端进行验证。而利用Ajax可以在前端先…

    JavaScript 2023年6月10日
    00
  • 解决layui的form里的元素进行动态生成,验证失效的问题

    针对“解决layui的form里的元素进行动态生成,验证失效的问题”,我们可以采用以下攻略: 动态生成表单元素 在动态生成表单元素的过程中,需要为每一个生成的表单元素添加 layui 的 form 类属性,示例如下: <input type=”text” name=”username” lay-verify=”required” class=”layu…

    JavaScript 2023年6月10日
    00
  • 支持ASP.NET MVC、WebFroM的表单验证框架ValidationSuar使用介绍

    以下是关于ValidationSuar框架的使用介绍。 什么是ValidationSuar框架? ValidationSuar是一个用于.net平台的权限验证框架,支持ASP.NET MVC、WebFroM,能够轻松应对各种表单验证需求。 如何使用ValidationSuar框架? 第一步:安装NuGet包 在Visual Studio中,右键点击项目 -&…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部