首页 > 解决方案 > 有没有办法将 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

所以我需要在没有任何三元?:运算符的情况下传递任何对象并测试它的值。

标签: javascript

解决方案


最简单的方法是使用可选链接

function testFun(value, defaultvalue) {
  if (!value) {
    console.log(defaultvalue)
  } else {
    console.log(value)
  }
}

let testVar
testFun(testVar, testVar?.field1?.value || 'Other default value')


推荐阅读