📅  最后修改于: 2023-12-03 15:17:00.221000             🧑  作者: Mango
在JavaScript中,创建对象时可以选择在定义时或在运行时设置对象的属性值。但是,当你尝试在对象定义后设置属性时,你会发现一些“陷阱”。
在对象定义之后,会给“未初始化”的属性一个值undefined。因此,在对象定义之前,无法访问它所定义的属性。
在JS中,如果没有定义该属性的默认值,则在访问该属性时将返回undefined。在许多情况下,这不是我们希望发生的情况。例如,即使属性尚未设置,我们也希望访问它时返回一个非undefined值。
为此,可以使用js中的nullish合并运算符(??)来定义默认值。
以下是一个示例:
const myObj = {
myProp: 'carrot',
myUndefinedProp: undefined,
}
console.log(myObj.myProp) // 输出:'carrot'
console.log(myObj.myUndefinedProp) // 输出:undefined
const myValue = myObj.myUndefinedProp ?? 'default value'
console.log(myValue) // 输出:'default value'
JS在定义对象时,可以选择将属性的值与对象一起定义。如果未定义,则会为该属性分配默认值undefined。在许多情况下,由于属性值未定义而导致的undefined的结果无法被忽略。
为了解决这个问题,可以使用nullish合并运算符(??)来设置默认值。
这是JS中一个重要的概念,开发人员必须熟悉,以便在项目中避免错误。