除了零之外,在JavaScript中检查null是否有效

时间:2016-01-06 13:12:14

标签: javascript null

我使用以下语法确保输入参数不是 null

function hazaa(shazoo){
  shazoo = shazoo || " ";
}

它适用于我为测试的所有内容,除了零。

  

null - > “”   “哔” - > “嘟”
  4 - > 4
  但是...
  0 - > “”

我猜测零被视为 null false ,因此创建了陷阱。什么是正确的语法,所以零为零?

如果它使建议语法的问题变得相当简单,我们可以假设输入将是char,string,number或null。

7 个答案:

答案 0 :(得分:7)

  

我正在使用以下语法来确保我的输入参数不为空。

如果您要做的只是在输入为" "时才使用null,那么请使用三元运算符,就像这样

shazoo = shazoo === null ? " " : shazoo;

This answer列出了JavaScript中被视为Falsy的值。该表显示零被视为Falsy。这就是当shazoo || " "为零时," "被评估为shazoo的原因。

答案 1 :(得分:1)

Boolean(0)输出false,因此第二个选项""

您可以尝试(查看此fiddle

function hazaa(shazoo){
  return shazoo == null ? " " : shazoo;
} 
hazaa(0); //output 0

答案 2 :(得分:1)

  

我猜测零被视为空或假

是0被视为假。

  

什么是正确的语法,所以零为零?

您可以尝试使用

shazoo = shazoo === null ? " " : shazoo;

答案 3 :(得分:1)

使用以下内容:

if (shazoo === null){
...
}else{
...
}

答案 4 :(得分:1)

您可以===运营商,最好的方式是

if (shazoo === null)
 shazoo = " ";

无需使用其他

shazoo = shazoo //no sense

答案 5 :(得分:1)

在我看来,这是您不想进行类型安全比较的少数几个地方之一。 在这样的地方你想要以与null相同的方式威胁未定义;你不想每次都写它。

//so better use this
shazoo = shazoo == null ? " " : shazoo;

//than this
shazoo = shazoo === null || shazoo === undefined ? " " : shazoo;

答案 6 :(得分:1)

新标记

您也可以在ES6中使用默认参数表示法,如果为该参数传递undefined,则默认参数表示法。

function foo(shazoo = "default"){
    console.log(shazoo);
}

foo();          // "default"
foo(undefined); // "default"
var bar;        // 
foo(bar);       // "default"
foo("my string"); // "my string"
foo(null);      // null

它无法处理null