在JavaScript中,为对象属性设置默认值可以通过多种方式实现。以下是一些常见的方法:
||
)const obj = {
name: 'John',
age: 25
};
const age = obj.age || 18; // 如果obj.age不存在或为false,则使用18作为默认值
?.
)和空值合并运算符(??
)const obj = {
name: 'John',
details: {
age: 25
}
};
const age = obj.details?.age ?? 18; // 如果obj.details.age不存在或为null/undefined,则使用18作为默认值
function getAge(obj) {
return obj.age !== undefined ? obj.age : 18;
}
const obj = {
name: 'John'
};
const age = getAge(obj); // 如果obj.age不存在,则使用18作为默认值
function createPerson(name, age = 18) {
return { name, age };
}
const person = createPerson('John'); // age将使用默认值18
const defaultValues = {
age: 18
};
const obj = {
name: 'John'
};
const mergedObj = Object.assign({}, defaultValues, obj); // mergedObj将包含name和age属性,age使用默认值18
||
)时,0、空字符串、false等值会被忽略?这是因为逻辑或运算符在判断时会将0、空字符串、false等值视为false,从而使用右侧的默认值。如果需要保留这些值,可以使用空值合并运算符(??
)。
const obj = {
age: 0
};
const age = obj.age ?? 18; // age将保留0,而不是使用默认值18
可以使用可选链操作符(?.
)和空值合并运算符(??
)来处理嵌套对象的属性。
const obj = {
details: {
age: 25
}
};
const age = obj.details?.age ?? 18; // 如果details.age不存在或为null/undefined,则使用18作为默认值
通过以上方法,可以灵活地为JavaScript对象属性设置默认值,确保程序的健壮性和可靠性。
领取专属 10元无门槛券
手把手带您无忧上云