如何在Javascript中检查空值?

sql*_*ole 13 html javascript null

我正在研究一种在我的表单中检索隐藏输入数组的方法

<input type="hidden" value="12:34:00" name="timetemp0">
<input type="hidden" value="14:45:00" name="timetemp1">
<input type="hidden" value="15:12:00" name="timetemp2">
<input type="hidden" value="16:42:12" name="timetemp3">
<input type="hidden" value="16:54:56" name="timetemp4">
<input type="hidden" value="17:03:10" name="timetemp5">
Run Code Online (Sandbox Code Playgroud)

我的javascript函数使用getElementsByName('timetemp'+ i)单独检索这些函数

    for (i ; i < counter[0].value; i++)
        {
//finds hidden element by using concatenation of base name plus counter

var timetemp = document.getElementsByName('timetemp'+i);

//if there is a value alert that value to user - this is just for testing purposes at the moment
//because there is only one of timetemp.i then it occupies position 0 in array
            if (timetemp[0].value == null)
            {
                alert ('No value');

            }
            else
            {
                alert (timetemp[0].value);

            }
}
Run Code Online (Sandbox Code Playgroud)

那么应该发生的是它会提醒用户该隐藏输入中的值,但是如果它在输入中没有像这样的值:

<input type="hidden" value="" name="timetemp16">
Run Code Online (Sandbox Code Playgroud)

然后会说"没有价值"

但是,如果函数似乎不能用于此:

我试过了:

  1. (timetemp[0].value == null)
  2. (timetemp[0].value === null)
  3. (timetemp[0].value == undefined)
  4. (timetemp[0].value == '')

似乎总是默认为else子句.

有任何想法吗?

Ric*_*ton 37

评论作为答案:

if (timetime[0].value)
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为JS中的任何变量都可以作为布尔值进行求值,因此这通常会捕获空,空或未定义的内容.


Jam*_*ter 5

在我看来,使用“if(value)”来判断一个值是否为空值并不严格,因为当v的值为0时,“v?true:false”的结果为false(0不是空的)价值)。您可以使用此功能:

const isEmptyValue = (value) => {
    if (value === '' || value === null || value === undefined) {
        return true
    } else {
        return false
    }
}
Run Code Online (Sandbox Code Playgroud)