发布时间: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/
opencv(13):cv2.findContours、cv::findContours简要介绍及opencv各版本cv2.findContours函数说明
ubuntu安装opencv4.X+opencv_contrib教程(c++)
Scaled-YOLOv4: Scaling Cross Stage Partial Network 论文翻译
SpringBoot接口 - 如何优雅的对接口返回内容统一封装?
c语言中3%3e2%3e1的值,Javascript中的空数组值
「ChatGPT」一夜之间“火爆出圈“【杞人忧天 or 未雨绸缪】
互联网晚报 | 8月18日 星期三 | 荣耀回应上市传闻;小爱同学宣布月活用户破亿;许家印卸任恒大地产董事长...