📜  js 仅在定义时才在对象中设置值 - Javascript (1)

📅  最后修改于: 2023-12-03 15:17:00.221000             🧑  作者: Mango

JS仅在定义时才在对象中设置值 - Javascript

在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中一个重要的概念,开发人员必须熟悉,以便在项目中避免错误。