首页 > 其他分享 > js中“??“和“?.“怎么用?

js中“??“和“?.“怎么用?

时间:2023-06-27 22:00:16浏览次数:31  
标签:怎么 obj undefined js second 操作符 first 属性

??:空值合并操作符

逻辑操作符,左侧为null和undefined时,才返回右侧的数

?. :可选链操作符

可以读取位于连接对象链深处属性的值,不必明确验证链中的每个引用是否有效
功能类似于“.” 链式操作符,不同之处在于,在引用为空null 或者 undefined 的情况下不会引起错误,该表达式短路返回值是 undefined
与函数调用一起使用时,如果给定的函数不存在,则返回 undefined。

const fa = {
      name: 'lming',
      son: {
        name: 'lqq'
      }
    };
const duc = fa.duc?.name;
console.log(duc);
//输出undefined

使用:

1.获取一个对象更深层次的属性,即obj中的first属性下的second属性。为了避免报错, 获取之前要判断first属性是否为null或者undefined,在获取second属性 使用“与”运算符

let num = obj.first && obj.first.second;
使用?.可选链操作符

let num = obj.first?.second;

可选链与函数调用

调用一个可能不存在的方法时,如果被调用的方法不存在,使用可选链可以使表达式自动返回undefined而不是抛出一个异常

let result = someInterface.customMethod?.();
注:如果存在一个属性名且不是函数, 使用 ?. 仍然会产生一个 TypeError 异常 (x.y is not a function).

标签:怎么,obj,undefined,js,second,操作符,first,属性
From: https://www.cnblogs.com/coderz1/p/17510038.html

相关文章

  • 鸿蒙星空的太白星 | WebView给元服务调用JS API指明方向
    ​漆黑深夜夜凉如水,繁星盛开于无垠苍穹。清风徐来,一片薄云,夜空顿然失色,有些阴霾。天空中最亮的星,太白星,在薄云中依然闪耀,如同海上迷雾中的灯塔,为迷失方向的船只指明方向。 元服务是华为提供的一种面向未来的服务形态,具有独立入口和免安装等特性,支持运行在1+8+N设备上。在万物互......
  • gojs禁止画布滚动 完全只读方案
    gojs生成画布后,鼠标滚动,画布的内容会上下移动,以下属性可解决此问题。myDiagram=$(go.Diagram,"graph",{initialContentAlignment:go.Spot.Center,//启动视口中间的所有内容"toolManager.mouseWheelBehavior":go.ToolManager......
  • 设备和驱动器图标怎么删除
    我的电脑/设备与驱动器上图标(腾讯32位)/删除步骤4_哔哩哔哩_bilibili运行——regedit——注册表中找NameSpace,地址如下,文件夹中全删,就可以了 ......
  • 菜鸟学习Spring——SpringMVC注解版解析不同格式的JSON串
    一、概述    不同格式的JSON串传到后台来实现功能这个是我们经常要做的一件事,本篇博客就给大家介绍四种不同的JSON串传到后台后台如何用@RequestBody解析这些不同格式的JSON串的。二、代码展示需要引用的jar包1.xml配置  Web.xml1.<?xmlversion="1.0"encoding="UTF-8......
  • 记录--Threejs-着色器实现一个水波纹
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助hree.js是一个基于WebGL的JavaScript3D库,用于创建和渲染3D图形场景。一、图像渲染过程1、webGLwebGL:WebGL是一种基于JavaScriptAPI的图形库,它允许在浏览器中进行高性能的3D图形渲染。webGL的......
  • 怎么部署代码到git上,并配置idea 拉取代码等操作
     怎么部署代码到git上,并配置idea拉取代码等操作?1要将代码部署到Git上并配置IDEA以拉取代码,您可以按照以下步骤进行操作:231.创建一个Git仓库:首先,在Git托管平台(如GitHub、GitLab、Bitbucket等)上创建一个新的仓库。请根据您的需求进行设置,并获取仓库的URL。452.......
  • PDF文件怎么设置密码?PDF设置密码方法分享!​
    PDF文件怎么设置密码?PDF文件是一种非常常见的文件格式,在日常的工作和学习中,我们都会接触到它。是我们经常使用的文件格式之一,它可以被轻松地共享和传输。然而,有时候我们需要保护PDF文件的机密性,以免被未经授权的人员访问。这时候,密码保护是一个非常有效的方式。那么到底怎么给PDF文......
  • 怎么截图识别文字?截图识别文字方法分享!​
    怎么截图识别文字?截图识别文字技术的应用领域非常广泛。在现今的信息时代,我们经常会遇到需要把图片中的文字转化为可编辑的文本的情况。这时候,截图识别文字技术就显得非常重要。在商业领域,截图识别文字技术可以帮助公司快速处理大量的文件和数据。在教育领域,学生们可以使用截图识别......
  • JS异步编程
    ES5中的Generator异步方案Generator使用function*foo(){console.log('start')try{constres=yield'foo'console.log(res)//bar}catch(e){console.log(e)}}constgenerator=foo()constres=generator.next()con......
  • js常用操作
    1.重新渲染页面元素this.$forceUpdate(); 2.对象转化为json字符串再传参JSON.stringify()  3.删除js对象元素index表示对象下标deletethis.imgList[index];......