js中的??使用

ES6中js的运算符( ?. ?? ) JS 逻辑运算符 (也叫短路运算)js中为我们提供了三种逻辑运算符:或 ||与 &&非!。这三个都是针对布尔值进行的,如果不是布尔型,则需要将他转换为布尔型,然后在进行相应的运算。如果一个值可以被转换为true,那么这个值就是所谓的truthy,如果可以被转换为false,那么这个值就是所谓的falsy。 阅读详情
1、?? 表示:只有左侧的值为null或undefined的时候才使用右侧的值
2、??和三元表达式的区别: ?? 会取 0 或 false 为有效值, 但是三元表达式不会

例子:

let a=0 
let num=a?a:1 //1
let num2=a??2 //0

ps:
?. 表示:可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每 个引用是否有效。操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空(null 或者 undefined) 的情况下不会引起错误,该表达式短路返回值

const obj = {
      name: 'ceshi',
      detail: {
        cat: 'huahua'
      }
    }
    const name = obj.dog ?. name;
    console.log(name) // undefined
JavaScript (JS) 中的 `?.` 和 `!.` 操作符 是 ES2020 引入的可选链操作符(Optional Chaining Operator)。它用于在访问对象属性或调用方法时,简化处理null或undefined的情况。!是 TypeScript 中的非空断言操作符(Non-null Assertion Operator)。它用于告诉 TypeScript 编译器,某个值在运行时一定不是null或undefined,从而避免类型检查错误。用途不同?用于在访问对象属性或调用方法时处理null或undefined,避免运行时错误。! 阅读详情

相关推荐

Unity Shader变体优化实战:从内存削减到打包加速

本文深入探讨了Unity项目中Shader变体数量爆炸导致的打包缓慢、内存占用过高及包体臃肿等问题。核心解决方案是通过精准的Shader变体裁剪,即收集项目实际用到的变体形成“白名单”,并利用IPreprocessShaders接口在打包时剔除无用变体。实战表明,该方法能显著提升打包速度并大幅降低运行时内存。

weixin_29300241的博客 217

JS &、|、^和~(逻辑位运算符)

js教程位运算就是对二进制数执行计算,是整数的逐位运算。例如,1+1=2,在十进制计算中是正确的,但是在二进制计算中,1+1=10;对于二进制数 100取反,等于 001,而不是 -100。 位运算符有 7个,分为两类: 逻辑位运算符:位与(&)、位或(|)、位异或(^)、非位(~) 移位运算符:左移(<<)、右移(>>)、无符号右移(>>>) 逻辑位运算符与逻辑运算符的运算方式是相同的,但是针对的对象不同。逻辑位运算符针对的是二进制的整数值,而逻..

weixin_42034000的博客 1717

深入解析MTK DRM初始化流程:从KMS模块到组件框架

本文深入解析了联发科(MTK)平台上DRM显示框架的初始化流程。从内核模块加载、Component框架管理依赖,到核心的mtk_drm_bind函数构建KMS对象(CRTC、Plane、Encoder、Connector),最终完成DRM设备注册并创建用户空间接口。文章结合调试经验,为开发者梳理了从驱动启动到屏幕点亮的完整路径与关键排查点。

onion的博客 769

js ??和?.的含义

??(空值合并操作符) 当左侧值为 null 或 undefined 时,返回 ?? 符号右边的值 案例如下: 'hello world' ?? 'hi' // 'hello world' '' ?? 'hi' // '' false ?? 'hi' // false null ?? 'hi' // 'hi' undefined ?? 'hi' // 'hi' ?.(可选链操作符) 允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。 案例如下: let ne

weixin_43858446的博客 3万+

SpringBoot+Vue实现图片上传

SpringBoot+Vue实现图片上传

叶♥璃 2731

【TELEMAC V8P4】TELEMAC-2D 用户手册核心概念与应用场景速览

本文深入解析了TELEMAC-2D水动力模型的核心概念与应用。作为基于二维浅水方程的开源数值模拟工具,TELEMAC-2D广泛应用于河流动力学、洪水演进、污染物输运及泥沙运动模拟。文章结合用户手册与实战经验,详细拆解了其理论框架、关键物理过程(如湍流模型、干湿网格处理),并提供了从模型搭建、文件配置到典型场景(如工程评估、污染应急、洪水模拟)的实用指南,帮助用户快速掌握这一强大工具。

weixin_29200741的博客 164

【JavaScript】双问号(??)操作符详解

空值合并操作符 是一种逻辑运算符,用于在左侧表达式的值为 或 时,返回右侧的默认值。简单来说,就是: 是要检查的值; 是当 为 或 时使用的默认值; 最终 的值是 或 ,取决于 是否为 或 。 3. 简单示例 在这个例子中,因为 是 ,所以最终 赋值为右侧的 “匿名用户”。如果 有一个实际的值,比如: 那么就直接使用 的值,不使用默认值。在 出现之前,我们常常用逻辑或 来处理默认值,比如: 问题是, 会把**所有假值(falsy value)**都当成无效,包括:上

lph159的博客 1万+

FM1288回声消除芯片调试方案 - 综述

专栏文章概览

优快云mianfeixiazai001的博客 1714

??和 ||在js中的使用

let res = val1 ?? val2; //若val1为null 或者 undefined 则 取后面的值; let res1 = val1 || val2; //若val1 为 null undefinde 0 false 空字符串 则取后面的值 双问号更适合在不知道变量是否定义或者是否赋值时的场景来使用 <script> let res = null; console.log(res,'null','123ooo',1111)

qq_44917015的博客 598

AI大模型探索之路-实战篇4:深入DB-GPT数据应用开发框架调研

在当今的人工智能时代,大模型技术的迅猛发展为各行各业带来了前所未有的变革。这些大模型,以其强大的语言理解和生成能力,正在逐步成为智能化应用的核心。然而,如何高效地利用这些大模型,构建出满足各种需求的应用,仍然是一个具有挑战性的问题。DB-GPT,作为一个开源的AI原生数据应用开发框架,应运而生,旨在简化大模型应用的开发过程,让构建智能化应用变得触手可及。本文将深入介绍DB-GPT的核心功能、关键特性,并通过实战操作,展示如何利用DB-GPT进行数据应用开发。DB-GPT是一个开源的AI原生数据应用开发框架。

寻道AI,探索AI无限可能! 1万+

CPU 访问外设的两种核心机制:MMIO(Memory-Mapped I/O) 和 DMA(Direct Memory Access)

BAR和DMA是计算机系统中两种关键的数据传输机制:BAR(基址寄存器)用于CPU与设备间的控制通信,映射设备寄存器便于配置操作;而DMA(直接内存访问)允许设备直接读写系统内存,无需CPU参与大量数据传输。典型场景如NVMe SSD读取数据时,CPU通过BAR下发指令,设备通过DMA高效传输数据到主机内存,最后中断通知CPU。虽然BAR能映射大内存空间,但仍无法替代DMA的高效数据传输功能,两者各司其职——BAR负责控制,DMA专注数据传输,共同实现高性能的硬件交互。

MHD0815的博客 238

js中的‘??’运算符和‘?.’运算符的作用和使用方法

js中的(??)运算符和(?.)运算符的描述

个人的技术笔记本,希望同时可以帮助到你,那我非常荣幸。个人博客地址:https://yuhanworld.github.io/ 1万+

数字滤波器应用介绍

线性滤波器FIR ,会引起恒定延迟,通过补零的方式补偿非线性滤波器IIR,会引起频率相关的延迟,通过零相位延迟filtfilt补偿从信号中去除不需要的频谱时,通过滤波和补偿实现。如果需要去除的频率与采样率相差甚远,比如4kHz 与100Hz, 可通过 低通滤波->补偿->降采样–> 滤波 补偿 -->上采样还原的方法。*降采样前一定要先低通滤波为了防止混叠。

weixin_39107270的博客 274

Js权威指南阅读--Day1

一直想系统的去学习梳理一边js的基础,最近选择了JavaScript权威指南,俗称“犀牛书”,从今天开始从头开始阅读一边,对了js的基础进行查缺补漏,每天阅读后对于新的知识点进行一个小总结,方便复习 原始类型与对象类型 Js中的类型分为原始类型与对象类型,原始类型是不可修改的(immutable),对象类型是可修改的(mutable)。原始类型包括数值,布尔值,符号,null和undefined。字符串可以看成字符数组,但是他也是不可修改的,所有看起来修改了字符串的操作,其实都是返回了一个新的字符串。

m0_48474585的博客 361

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

有趣的非空判断函数 + ?? 介绍

介绍一个非常有帮助的非空判断函数,引出了?? ,对其进行简单的介绍

weixin_52648900的博客 698

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

php 双问号 语法,js问号点操作符【?. ??】(可选链 双问号)

配置使用可选链?.和 双问号?? 语法一、什么是可选链https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining当访问多层对象属性(比如res.data.list)时,如果属性res.data为空,则会报引用错误为此我们不得不这么处理:let dataList = res...

weixin_35834213的博客 440

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JavaScript基础语法之 || 和 ??

使用 || 的时候,当第一个值为非0非null非’‘非undefined的时候,优先取第一个值,而当第一个值是0或’'或null或undefined的时候,则优先取第二个参数的值。console.log('' || 1) //输出1。console.log(null || 1) //输出 1。console.log(undefined || 1) //输出1。

weixin_53954018的博客 720

JavaScript中的 ?? 操作符

JavaScript 中的 ?? 是一个新的操作符,被称为 Nullish Coalescing Operator ,意为“空值合并运算符”。它的作用是当左侧表达式为 null 或 undefined 时,返回右侧表达式的结果。如果左侧表达式的值不为 null 或 undefined,则返回左侧表达式的值。

weixin_43599321的博客 1256

js中??是什么意思

?是一个非常有用的运算符,特别适合在需要区分nullundefined和其他假值的场景中使用。它可以帮助你更精确地处理默认值逻辑。

肖肖肖丽珠的博客 1769

空值合并运算符 ‘??’

空值合并运算符 ‘??’ a ?? b 的结果是: 如果 a 是已定义的,则结果为 a, 如果 a 不是已定义的,则结果为 b。 如果第一个参数不是 null/undefined,则 ?? 返回第一个参数。否则,返回第二个参数 与 || 比较 重要的区别是: || 返回第一个 真 值。 ?? 返回第一个 已定义的 值。 || 无法区分 false、0、空字符串 “” 和 null/undefined。它们都一样 —— 假值(falsy values)。如果其中任何一个是 || 的第一个参数,那么我们

@梢的博客 757

js语法中 ?. 和 ?? 的含义以及用法说明

常用的是 ?. 至于什么意思 我们来用例子演示 ?. const obj = {hh: 'xxx'} let res = obj?.data?.list console.log(res) // undefined console.log(obj?.hh?.length) //3 console.log(obj?.hh) // xxx 作用就是判断这个对象(this.element)下的(Object)下的(value)下的(length)是否为null或者undefined, (如果没有加 ?. ,

lzfengquan的博客 4万+

JavaScript 中??和?.的使用

??和?.的使用

一个懒惰前端的博客 597

js 可选链?.,逻辑与&&,逻辑或||,空值合并??

空值合并操作符"??",我第一次看到它,就和它的表示符号一样,满脸问号?。在实际开发中我会经常用到&&和||

前端蜗牛君 361

合并空值运算符??

合并空值运算符提供一种从列表中选择第一个"已定义"的值的简便方式,用于为变量分配默认值。??运算符的优先级非常低,仅略高于?和 =,因此在表达式中使用它时请考虑添加括号。如果没有明确添加括号,不能将其与 || 或 && 一起使用。

思考是大脑的源代码,未经编译,却已运行一生。——调试自己,迭代世界。 441

js中,双问号??和双竖杠||的区别

它们的共同特点是语法一样,前面是值,后面也是值,中间是符号; 都是根据前面的值来决定到底取前面还是取后面。 双竖杠|| : 前面的值转为布尔值为 false 时,就取后面,否则取前面 如undefined、null、false、空字符串和数值 0 双问号: 前面的值为null、undefined,则取后面的值,否则都取前面的值。 例: console.log(1 || "xx") //1 console.log(0 || "xx") //xx console.log(.

前端kk的博客 729
上一篇: 知识点:TypeScript、<script setup>、面向对象
下一篇: typeScript小记
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值