首页 > 编程语言 >JavaScript中的空值合并操作符【??】和可选链操作符【?.】的理解和使用

JavaScript中的空值合并操作符【??】和可选链操作符【?.】的理解和使用

时间:2023-01-22 15:45:08浏览次数:62  
标签:num01 undefined 选链 JavaScript 空值 let 操作符 null

参考:http://t.csdn.cn/5700Y

?? - 空值合并操作符

结构:eg: let res = num01??num02;
?? 当左侧的变量为null或undefined的时,返回左侧num02否则返回自身num01(num01相当于null和undefined下兜底作用)

let res01 = null ?? "B站"; // 'B站'
let res02 = undefined ?? "P站"; // 'P站'
let res03 = "P站" ?? "B站"; // 'P站'

?. - 可选链操作符

结构:eg: obj.userInfo?.name;
?. 当访问链深处属性值的时候不必明确验证链中所方法对象的有效性

使用场景

场景01 - 可选链与函数调用

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

场景02 - 使用空值合并操作符

let customer = {
  name: "Carl",
  details: { age: 82 }
};
let customerCity = customer?.city ?? "P站";
console.log(customerCity); // “P站”

场景03 - 短路计算

···
let a = null;
let x = 0;
let prop = a?.[x++];
console.log(x); // x 将不会被递增,依旧输出 0
···

标签:num01,undefined,选链,JavaScript,空值,let,操作符,null
From: https://www.cnblogs.com/openmind-ink/p/17064464.html

相关文章

  • JavaScript 循环引用
    JavaScript中的循环引用是指两个或多个对象之间相互引用的情况。这种情况下,这些对象就不能被垃圾回收机制正常回收,会导致内存泄漏。循环引用通常发生在对象之间相互包含......
  • c语言操作符详解
    前言:在写完三子棋和扫雷后,我们接着开始新的知识,操作符时c语言中必不可少的角色,运用好可以大大简化代码1.操作符分类:算术操作符移位操作符位操作符赋值操作符单目操作......
  • JavaScript学习笔记—数组
    1.描述数组也是一种复合数据类型,在数组中可以存储多个不同类型的数据数组中存储的是有序的数据,数组中的每个数据都有一个唯一的索引,可以通过索引来操作获取数据数组中......
  • JavaScript 内存管理及垃圾回收
    一、内存管理JavaScript是一种自动垃圾回收语言,这意味着JavaScript引擎会自动监测和清理无用的内存。JavaScript中的内存管理主要由JavaScript引擎负责,开发人员不......
  • JavaScript 异步编程
    JavaScript是一种单线程语言,这意味着只有一个线程可以在同一时间执行JavaScript代码。在JavaScript中,异步编程是一种编写不阻塞代码的方式,它可以在不影响页面响应的情......
  • JavaScript 中 this 关键字的作用和如何改变其上下文
    一、this关键字的作用JavaScript中的this关键字引用了所在函数正在被调用时的对象。在不同的上下文中,this的指向会发生变化。在全局上下文中,this指向全局对象(在浏......
  • javascript: node.js
     consthttp=require("http");http.createServer(function(request,response){response.writeHead(200,{'Content-type':'text/html'});response.end('<h1>......
  • 前端面试题 - javaScript系列
    Time:2023-01-2021:14:37ES6系列1.说说var、let、const之间的区别var、let、const三者区别可以围绕下面五点展开:变量提升暂时性死区块级作用域重复声明修......
  • javaScript
    JavaScript是一门流行脚本快速入门跟css一样,可以直接写在html中,放在script标签中alert可以弹出弹窗,内容用单引号引入的时候一定要成对出现,不能自闭和基本语法入门......
  • JavaScript 中断forEach循环
    1、使用Array.prototype.some()方法代替some()方法会在找到第一个符合条件的元素时停止循环。例如:letarray=[1,2,3,4,5];array.some(function(element,inde......