如何在 JavaScript 中检查空值?我写了下面的代码,但没有用。
if (pass == null || cpass == null || email == null || cemail == null || user == null) {
alert("fill all columns");
return false;
}
以及如何在我的 JavaScript 程序中找到错误?
如何在 JavaScript 中检查空值?我写了下面的代码,但没有用。
if (pass == null || cpass == null || email == null || cemail == null || user == null) {
alert("fill all columns");
return false;
}
以及如何在我的 JavaScript 程序中找到错误?
JavaScript 在检查“空”值方面非常灵活。我猜你实际上是在寻找空字符串,在这种情况下,这个更简单的代码将起作用:
if(!pass || !cpass || !email || !cemail || !user){
这将检查空字符串 ( ""
), null
, undefined
,false
以及数字0
和NaN
。
请注意,如果您专门检查数字,则0
使用此方法是一个常见错误,并且对于返回 的函数(例如)num !== 0
是首选(num !== -1
或~num
(或(也检查 的hacky 代码-1
)))。-1
indexOf
检查null具体你可以使用这样的:
if (variable === null)
本次测试将只通过了null
,也不会通过的""
,undefined
,false
,0
,或NaN
。
此外,我已经为每个“类似假”的值(会为 返回真值)提供了绝对检查!variable
。
注意,对于一些绝对的检查,你将需要实现的使用absolutely equals: ===
和typeof
。
这是每个检查的输出:
Null Test:
if (variable === null)
- variable = ""; (false) typeof variable = string
- variable = null; (true) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
Empty String Test:
if (variable === '')
- variable = ''; (true) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
Undefined Test:
if (typeof variable == "undefined")
-- or --
if (variable === undefined)
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (true) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
False Test:
if (variable === false)
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (true) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
Zero Test:
if (variable === 0)
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (true) typeof variable = number
- variable = NaN; (false) typeof variable = number
NaN Test:
if (typeof variable == 'number' && !parseFloat(variable) && variable !== 0)
-- or --
if (isNaN(variable))
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (true) typeof variable = number
如您所见,对 进行测试有点困难NaN
;
严格相等运算符:-
我们可以通过 ===
if ( value === null ){
}
只需使用 if
if( value ) {
}
如果value 不是,则评估为 true :
您可以检查某些值是否为空,如下所示
[pass,cpass,email,cemail,user].some(x=> x===null)
奖励:为什么===
比==
(来源)更清楚