赋值时对象未定义



我的函数有一个参数dtoIn,我试图检查它是否未定义或为空。

我有这样的赋值,所以它不应该是未定义的,但我得到的对象是未定义的。你能给我一些建议吗?

{
count : 10,
minAge : 10,
maxAge : 10,
}
function main(dtoIn={count, minAge, maxAge}) { 
if (typeof dtoIn !== "undefined" && dtoIn !== null){
alert(`empty`);
}
}

我认为在你的代码中有一些关于对象解构和函数默认值如何工作的误解。

考虑下面的例子:

let obj = {
count : 10,
minAge : 10,
maxAge : 10,
}
function main({ count = 15, minAge = 15, maxAge = 15 } = {}) {
console.log(count, minAge, maxAge)
}
main(obj);
main();

我们实际上甚至不需要在这里执行任何未定义的检查,因为该语法可以将给定对象解构为count, minAge和maxAge,或者如果没有给定,则解构为count = 15, minAge = 15和maxAge = 15。

如果您想保留dtoIn命名参数并为其设置默认值,您可以这样做:

let obj = {
count : 10,
minAge : 10,
maxAge : 10,
}
function main(dtoIn = { count: 15, minAge: 15, maxAge: 15 }) {
console.log(dtoIn);
}
main(obj);
main();

我猜你给函数参数分配错了,试试这个方法

let dtoIn = {
count : 10,
minAge : 10,
maxAge : 10,
};
function main(val) { 
if (typeof(val) == "undefined" && val !== null){
alert("empty");
}
}
main(dtoIn);

最新更新