javascript - 有没有办法将 undefined.undefined 作为函数参数传递
问题描述
我想检查对象是否有一个带值的字段,如果没有则返回默认值..
function testFun(value, defaultvalue) {
if (!value) {
console.log(defaultvalue)
} else {
console.log(value)
}
}
let testVar
testFun(testVar, 'this is default vaue')
但是这个函数不应该关心传递值......如果我想通过怎么办:
testVar.field1.value
当然会失败:
TypeError: Cannot read property 'field1' of undefined
所以我需要在没有任何三元?:
运算符的情况下传递任何对象并测试它的值。
解决方案
最简单的方法是使用可选链接
function testFun(value, defaultvalue) {
if (!value) {
console.log(defaultvalue)
} else {
console.log(value)
}
}
let testVar
testFun(testVar, testVar?.field1?.value || 'Other default value')
推荐阅读
- javascript - jest.setTimeout 在 setupFiles 中不起作用
- java - 分页和天真的查询 + eclipse 链接
- android - 阅读 Mifare Classic 会返回奇怪的字符
- blazor-server-side - Blazor 组件库中的 CSS 未加载
- ios - 我们如何将闭包传递给应用流程中的任何 ViewController?
- android - 更改 .so 库中的函数名称
- java - 雅加达ee到底是什么
- typescript - 可视代码显示找不到绝对导入的模块警告
- javascript - 循环播放时 HTML 画布内的视频闪烁
- mysql - 通过隧道 ssh 使用 sequelize 访问远程数据库时出错