鸿蒙开发if判断有点坑

90 阅读1分钟
它的判断和Android的有点不同,归结到底不是同一种语言,数据类型不一样
if (0) {
  logContent("aa","0")
} else {
  logContent("aa","00")  // 1
}
if ('') {
  logContent("aa","01")
} else {
  logContent("aa","011") // 1
}
if ([]) {
  logContent("aa","02") //1
} else {
  logContent("aa","022")
}
if (this.user) {
  logContent("aa","03") //1
} else {
  logContent("aa","033")
}

还有些三目运算也要注意: 假设定义:

showPositive?:boolean

业务处理

this.showPositiveDialog = commonDialogParams.showPositive ? commonDialogParams.showPositive : true

我本意是想如果showPositive没定义,没赋值时就用true,但是如果赋值了false,就用false。以上三目就有问题,给false时,就会变成了true。

解决方案如下:
this.showPositiveDialog = (typeof commonDialogParams.showPositive !== 'undefined') ? commonDialogParams.showPositive : true