发布时间:2023-11-03 13:30
var {a = 10, b = 5} = {a: 3};
变量可以先赋予默认值。当要提取的对象对应属性解析为 undefined,变量就被赋予默认值。
问题:但是当属性值为
false,null,NaN,0,空字符串的时候,将不会使用默认值
解决方法:使用“ || ”
c= a || b
ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法。
function log(x, y) {
y = y || 'World';
console.log(x, y);
}
log('Hello', '') // Hello World
上面代码检查函数log()的参数y有没有赋值,如果没有,则指定默认值为World。这种写法的缺点在于,如果参数y赋值了,但是对应的布尔值为false,则该赋值不起作用。就像上面代码的最后一行,参数y等于空字符,结果被改为默认值
ES6 之后,函数默认参数允许在没有值或undefined被传入时使用默认形参。
function multiply(a, b = 1) {
return a * b;
}
通过||运算符指定默认值,null或undefined,默认值就会生效,但是属性的值如果为空字符串或false或0,默认值也会生效。
,ES2020 引入了一个新的 Null 判断运算符??。它的行为类似||,但是只有运算符左侧的值为null或undefined时,才会返回右侧的值
总结
方法 | 默认值何时生效 |
---|---|
|| | boole值为false |
解构赋值默认值 | 使用严格相等运算符(===),判断一个位置是否有值。所以,只有当一个数组成员严格等于undefined,默认值才会生效 |
函数默认值 | typeof == undefined |
?? | null或undefined |
参考链接:
https://es6.ruanyifeng.com/#docs/function
https://www.samanthaming.com/tidbits/52-3-ways-to-set-default-value/
Vant 3 - 有赞出品的开源移动UI组件库,基于 Vue3 重构发布
SpringBoot整合Redis - @Cacheable 和 RedisTemplate
源码深度剖析SpringBoot启动流程中开启OpenFeign的入口(ImportBeanDefinitionRegistrar详解)
Python分布式爬虫打造搜索引擎完整版-基于Scrapy、Redis、elasticsearch和django打造一个完整的搜索引擎网站
【开源】使用PhenoCV-WeedCam进行更智能、更精确的杂草管理
解决seaborn.load_dataset()导入数据时报错问题
java 地图控件_控件交互-与地图交互-开发指南-Android 地图SDK | 高德地图API
vscode打开自动提示_Python编程的最好搭档:VSCode 详细指南
复盘:霍夫曼编码平均长度计算方式,信源符号a1-a6概率为:0.1,0.4,0.06,0.1,0.04,0.3,霍夫曼编码平均长度是