【发布时间】:2019-12-16 14:35:38
【问题描述】:
我有一个类的实例,其中几个数字和字符串属性分别初始化为 0 或 ""。访问这些属性时,它们是“未定义的”。将这些属性初始化为其他任何值,即 0.1 或“”,它被视为已定义。
为什么? 0 和 "" 是否等同于 undefined?
export class Car {
id = 0
name = ""
}
如果我有一个 Car 实例并尝试访问一个属性,它将是“未定义的”,
let myCar = new Car
if (myCar.id) {
console.log('yay')
} else {
console.log('boo')
}
它会显示“嘘”。
【问题讨论】:
-
0 和空字符串分别是这些类型的默认值,并将评估为 false。将
if(myCar.id)更改为if(myCar.id !== undefined)
标签: angular typescript