当我得到返回值为null并将该值分配给它时,它在UI中显示为null。但是我想检查一些条件,如果为null,则不应显示任何内容。 我尝试了下面的代码,但它不起作用。
var companyString;
if(utils.htmlEncode(item.companyname) == null)
{
companyString = '';
}
else{
companyString = utils.htmlEncode(item.companyname);
}
当我得到返回值为null并将该值分配给它时,它在UI中显示为null。但是我想检查一些条件,如果为null,则不应显示任何内容。 我尝试了下面的代码,但它不起作用。
var companyString;
if(utils.htmlEncode(item.companyname) == null)
{
companyString = '';
}
else{
companyString = utils.htmlEncode(item.companyname);
}
将item.companyname
与null(或任何false-y值)进行比较 - 但不是编码形式。
这是因为编码会将null
转换为"null"
(或者可能是""
,它们都是字符串),"null" == null
(或any_string == null
)为false。
使用三元运算符可以这样写:
var companyString = item.companyname
? utils.htmlEncode(item.companyname)
: "";
或者使用合并:
var companyString = utils.htmlEncode(item.companyname ?? "");
或者用长形式:
var companyString;
if(item.companyname) // if any truth-y value then encode
{
companyString = utils.htmlEncode(item.companyname);
}
else{ // else, default to an empty string
companyString = '';
}
var companyString;
if(item.companyname !=undefined && item.companyname != null ){
companyString = utils.htmlEncode(item.companyname);
}
else{
companyString = '';
}
not undefined
和 not null
。你也可以使用 alert
或 console.log
来检查你得到的值,以便查看为什么你的 if 块不起作用。此外,utls.htmlEncode 将把你的 null
转换为字符串,其中包含 null literal
,因此请不要编码进行比较。var companyString="";
if(utils.htmlEncode(item.companyname) != null)
{
companyString = utils.htmlEncode(item.companyname);
}
var companyString=" "
? - Guruprasad J Raoitem.companyname
与 null(但实际上是任何假值)进行比较,而不是编码形式。 - user2864740