js中问号点的作用(?.)和问号问号(??)(??=)的用法
1.空值合并操作符(??
)
例如我们日常写的代码
let b;
let a = 0;
let c = { name:'yyqx' }if(!!a || a === 0 ){b = a;
}else{b = c;
}
当我们想判断一个值存在,但是它等于0的时候,我们也需要当作它存在,于是就有了上面那样的例子,其实我们还可以这样做
let b;
let a = 0;
let c = { name:'yyqx' }b = a ?? c;
上面的例子,当a除了undefined、或者null之外的任何值,b都会等于a,否则就等于c。
2.空值赋值运算符(??=)
let b = '你好';
let a = 0
let c = null;
let d = ’123‘
b ??= a; // b = “你好”
c ??= d // c = '123'
当??=左侧的值为null、undefined的时候,才会将右侧变量的值赋值给左侧变量.其他所有值都不会进行赋值.同样在一些场景下,可以省略很多代码.
3.可选链(.?)
let a;
let b = a.name;
该情况下,a并没有name属性,会报错。
一般情况下,我们会如下方法
let a;
let b;
if(!!a){b = a.name;
}else{b = undefined;
}
该方法 代码长,我们可用?.来写,如下
let a;
let b = a?.name;
只有当a存在,同时a具有name属性的时候,才会把值赋给b, 若a.name不存在。则将undefiend赋值给b,重要的是,不管a存在与否,这么做都不会报错.
js中问号点的作用(?.)和问号问号(??)(??=)的用法相关推荐
- JS中关键字in的作用
JS中关键字in的作用 in关键字可以用来检测某个属性是否存在某个对象中,对于对象的属性要用字符串指定属性的名称("属性名") // 举个栗子:console.log(" ...
- JS中map()与forEach()的用法
JS中map()与forEach()的用法 相同点: 1.都是循环遍历数组中的每一项 2.每次执行匿名函数都支持三个参数,参数分别为item(当前每一项),index(索引值),arr(原数组) 3. ...
- js中的innerHTML的作用
js中常常用到innerHTML,其作用就是获取到标签里面的内容,同时也可以为标签添加内容 <div><p id="text">hello world< ...
- js最简单的几个特效_高阶函数不会用?教你JS中最实用的几个高阶函数用法
不废话,先来看下什么是高阶函数 高阶函数 函数可以作为参数传递 函数可以作为返回值输出 函数作为参数传递 回调函数 在ajax异步请求的过程中,回调函数使用的非常频繁 在不确定请求返回的时间时,将ca ...
- js中 replace(/\//g, '') 什么作用. 正则表达式
replace(/\//g, '') 的作用是把/替换成''. 用法如下: 比如:var aa= "adsdd/sdsd12/"; bb=aa.replace(/\//g, '') ...
- Vue.js 中created方法的作用【学习】
1.这是它的一个生命周期钩子函数,就是一个Vue实例被生成后调用这个函数,一个Vue实例被生成后还要绑定到某个htm元素上,之后还要进行编译,然后再插入到document中.每一个阶段都会有一个钩子函 ...
- js中new操作符的作用及原理
要知道new操作符的作用是什么,得先知道它干了什么事(原理): 它创建了一个新对象 它将构造函数的原型属性和方法挂载到新对象的__proto__(原型指针)上 他执行了构造函数并将构造函数的this指 ...
- js中in关键字的作用
in关键字可以用来检测某个对象里是否存在某个属性,既可以是这个对象自身的属性,也可以是这个对象继承的属性,对于对象的属性需要用字符串指定属性的名称. 比如用in检测对象中是否存在"proto ...
- JS中的call()方法和apply()方法和slice()用法总结
1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法. 2. 相同点:这两个方法的作用是一样的. 都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖 ...
- c语言中各种函数的作用,C语言常用函数用法大全
C语言是当中广泛的计算机编程语言,是所有计算机编程语言的祖先,其他计算机编程语言包括当前流行的Java语言,都是用C语言实现的,C语言是编程效率高的计算机语言,既能完成上层应用开发,也能完成底层硬件驱 ...
最新文章
- HDU 4407 sum 容斥原理
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析...
- 【机器学习】使用MLflow管理机器学习模型版本
- 京东智联云分布式低延时RTC系统
- 【SpringBoot】在IOC之外的类中使用IOC内部的Bean
- AI超人赛车手狂虐人类登Nature封面!1000台PS4训练,「苏菲」极限超车独霸赛道...
- 持续集成与持续部署实践_持续集成和部署的3个最佳实践
- java filter与servlet,Servlet中的Filter和Listener之间的区别(Java EE)
- Jmeter参数化HTTP request中Send Files With The Request的文件路径和文件名
- charles抓包工具的使用:手机抓包设置和安装证书
- Apache Shiro学习笔记(七)IniWebEnvironment
- java集成(支付宝)蚂蚁金服
- python mysql扩展,python-sql-faker:轻量级、易拓展的数据库智能填充开源库(Python实现版)...
- 【Nav2中文网】五、普通教程(九)Groot与行为树互动
- 《Windows游戏编程大师技巧》(第二版)第1章(下)
- php的swoole教程,PHP + Swoole2.0 初体验(swoole入门教程)
- Linux kernel Panic后自动重启机器的设置
- python基金比较上机题_手把手教你用python选基金
- Android开发技术周报 Issue#27
- H5缓存机制浅析-移动端Web加载性能优化【干货】
热门文章
- 中断控制器8259A
- 51单片机(动态数码管,静态数码管,led交通灯全部点亮)小白试图进阶菜鸟
- FITC-PEG-SH,荧光素-聚乙二醇-巯基的用途:用于修饰氨基酸,蛋白质等
- iPhone 7P已停用解决方案
- beta阶段第六次scrum meeting
- 创新微MinwSemi的LoRa模块在无线抄表中的应用
- 荒野行动pc版卡在获取服务器信息,《荒野行动》PC版更新卡在获取引擎信息 更新引擎卡住等解决方法...
- 04-查询窗口的使用
- Rattle :基于R的数据挖掘工具(1):简介和安装
- 电容式压力变送器故障现象及检修