Javascript 未处理的空字符串类型无效

Javascript 未处理的空字符串类型无效,javascript,Javascript,我正在尝试创建一个isEmpty函数,该函数将验证任何值,并在值为null或未定义时将其返回空字符串 由于某种原因,我的下面的函数不起作用,值仍然未处理。当我直接输入类型时,它似乎工作得很好。我有什么遗漏吗 const isEmpty=value=>{ 值===未定义|| 值的类型==“未定义”|| 值===null|| (typeof value==“object”&&object.keys(value.length==0)|| (typeof value==“string”&&value.

我正在尝试创建一个
isEmpty
函数,该函数将验证任何值,并在值为null或未定义时将其返回空字符串

由于某种原因,我的下面的函数不起作用,值仍然未处理。当我直接输入
类型时,它似乎工作得很好。我有什么遗漏吗

const isEmpty=value=>{
值===未定义||
值的类型==“未定义”||
值===null||
(typeof value==“object”&&object.keys(value.length==0)||
(typeof value==“string”&&value.trim().length==0);
};
常量数据={};
data.handle=!isEmpty(data.handle)?data.handle:“”;
log(“data.handle仍未定义:”+typeof data.handle);
if(typeof data.handle==“未定义”){
data.handle=“”;
log(“空字符串yes!!!”;
}

您缺少
return
语句,因此您的
函数
返回
未定义的

const isEmpty=value=>{
//你什么也不退
返回值===未定义||
值的类型==“未定义”||
值===null||
(typeof value==“object”&&object.keys(value.length==0)||
(typeof value==“string”&&value.trim().length==0);
};
常量数据={};
data.handle=!isEmpty(data.handle)?data.handle:“”;
log(“data.handle仍未定义:”+typeof data.handle);
if(typeof data.handle==“未定义”){
data.handle=“”;
log(“空字符串yes!!!”;

}
您缺少
return
语句,因此您的
函数
返回
未定义的

const isEmpty=value=>{
//你什么也不退
返回值===未定义||
值的类型==“未定义”||
值===null||
(typeof value==“object”&&object.keys(value.length==0)||
(typeof value==“string”&&value.trim().length==0);
};
常量数据={};
data.handle=!isEmpty(data.handle)?data.handle:“”;
log(“data.handle仍未定义:”+typeof data.handle);
if(typeof data.handle==“未定义”){
data.handle=“”;
log(“空字符串yes!!!”;
}

箭头函数可以有“简明体”或通常的“块体”

在简明体中,只指定一个表达式,该表达式将成为隐式返回值在块体中,必须使用显式返回语句。

因为您已将方法包装在花括号中,所以它被视为块体

在其前面添加一个
return
,或者更简单的是,通过删除花括号使其成为简洁的正文:

const isEmpty=value=>
值===未定义||
值的类型==“未定义”||
值===null||
(typeof value==“object”&&object.keys(value.length==0)||
(typeof value==“string”&&value.trim().length==0);
常量数据={};
data.handle=!isEmpty(data.handle)?data.handle:“”;
log(“data.handle仍未定义:”+typeof data.handle);
if(typeof data.handle==“未定义”){
data.handle=“”;
log(“空字符串yes!!!”;
}

箭头函数可以有“简明体”或通常的“块体”

在简明体中,只指定一个表达式,该表达式将成为隐式返回值在块体中,必须使用显式返回语句。

因为您已将方法包装在花括号中,所以它被视为块体

在其前面添加一个
return
,或者更简单的是,通过删除花括号使其成为简洁的正文:

const isEmpty=value=>
值===未定义||
值的类型==“未定义”||
值===null||
(typeof value==“object”&&object.keys(value.length==0)||
(typeof value==“string”&&value.trim().length==0);
常量数据={};
data.handle=!isEmpty(data.handle)?data.handle:“”;
log(“data.handle仍未定义:”+typeof data.handle);
if(typeof data.handle==“未定义”){
data.handle=“”;
log(“空字符串yes!!!”;

}
您的函数不会返回任何内容……谢谢!这帮了大忙,很高兴知道。我仍在努力熟悉语法。您的函数不会返回任何内容……谢谢!这帮了大忙,很高兴知道。我仍在努力熟悉语法。Meta注意:虽然修复非常简单,但我选择不将其标记为“简单的印刷错误”。我觉得,为什么简单的修复是必要的,背后的实际解释需要更深入的解释,而不是“打字错误”。肯定不是打字错误,但我是javascript语法的新手。您附加的链接将非常有用。谢谢Meta注意:虽然修复非常简单,但我选择不将其标记为“简单的印刷错误”。我觉得,为什么简单的修复是必要的,背后的实际解释需要更深入的解释,而不是“打字错误”。肯定不是打字错误,但我是javascript语法的新手。您附加的链接将非常有用。谢谢