将空字符串赋值给JavaScript变量

4

当我得到返回值为null并将该值分配给它时,它在UI中显示为null。但是我想检查一些条件,如果为null,则不应显示任何内容。 我尝试了下面的代码,但它不起作用。

var companyString;
if(utils.htmlEncode(item.companyname) == null)
{
  companyString = '';
}
else{
  companyString = utils.htmlEncode(item.companyname);
}


为什么不直接这样写:var companyString=" " - Guruprasad J Rao
你应该将 item.companyname 与 null(但实际上是任何假值)进行比较,而不是编码形式。 - user2864740
3个回答

5

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 = '';
}

0
var companyString;
if(item.companyname !=undefined &&   item.companyname != null ){
companyString = utils.htmlEncode(item.companyname);  
}
else{
companyString = '';
}

最好在 JavaScript 中检查 not undefinednot null。你也可以使用 alertconsole.log 来检查你得到的值,以便查看为什么你的 if 块不起作用。此外,utls.htmlEncode 将把你的 null 转换为字符串,其中包含 null literal,因此请不要编码进行比较。

-1
var companyString="";
if(utils.htmlEncode(item.companyname) != null)
{
   companyString = utils.htmlEncode(item.companyname);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接