Javascript 用零聚结缩短三元数

Javascript 用零聚结缩短三元数,javascript,Javascript,如果三元运算符正在检查自身,则可以使用?缩短它,这是否正确?我有以下数据: function myFunct(isEnabled) { this.doOtherFunc({ isEnabled: isEnabled ? isEnabled : true, }) } 我能把它改写如下吗?如果isEnabled存在,则给出它的true/false值——否则,使用true function myFunct(isEnabled) { this.doOt

如果三元运算符正在检查自身,则可以使用
缩短它,这是否正确?我有以下数据:

function myFunct(isEnabled) {
     this.doOtherFunc({ 
         isEnabled: isEnabled ? isEnabled : true,
     })
}
我能把它改写如下吗?如果
isEnabled
存在,则给出它的
true/false
值——否则,使用
true

function myFunct(isEnabled) {
     this.doOtherFunc({ 
         isEnabled: isEnabled ?? true,
     })
}
你可以接受


你测试过这种方法吗?它不是更短吗?因为这似乎是这里的逻辑。大概在你的原文中,你的意思是
typeof(isEnabled)==“undefined”?正确:isEnabled
@joynerj9j
isEnabled?isEnabled:true
表示如果
isEnabled
是任何假值,则将使用
true
。如果它有任何真实的价值,就会使用真实的价值。因此,
isEnabled??true
一点也不等效,因为isEnabled=false的结果不同。如果不存在
的话,你应该自己澄清一下,并准确说明你对
的意思
typeof arg==“未定义”
arguments.length>0
和对象上的
typeof obj[key]!==“undefined”
vs
key in obj
vs
obj.hasOwnProperty(key)
在某种程度上是对值存在的含义的所有不同定义,因为根据您测试此“存在”的方式,您会得到不同的结果。所有这些示例都只处理
未定义的
,而不处理
null
或类似虚假或无效值的内容。
function myFunct(isEnabled = true) {
    this.doOtherFunc({ isEnabled });
}