如何在JavaScript中检查空值?我写了下面的代码,但没用。

if (pass == null || cpass == null || email == null || cemail == null || user == null) {      

    alert("fill all columns");
    return false;  

}   

如何在JavaScript程序中查找错误?


当前回答

你可以使用try-catch finally

 try {
     document.getElementById("mydiv").innerHTML = 'Success' //assuming "mydiv" is undefined
 } catch (e) {

     if (e.name.toString() == "TypeError") //evals to true in this case
     //do something

 } finally {}   

您也可以抛出自己的错误。看看这个。

其他回答

JavaScript在检查“空”值方面非常灵活。我猜你实际上是在寻找空字符串,在这种情况下,这个更简单的代码会起作用:

if(!pass || !cpass || !email || !cemail || !user){

它将检查空字符串(“”)、null、undefined、false以及数字0和NaN。

请注意,如果您是专门检查数字,则使用此方法错过0是一个常见错误,num!==对于返回-1的函数(例如indexOf),首选0(或num!==-1或~num(同时检查-1的黑客代码))。

实际上,我认为你可能需要使用if(value!==null&&value!==undefined)因为如果使用if(value),也可能会过滤0或false值。

考虑这两个功能:

const firstTest = value => {
    if (value) {
        console.log('passed');
    } else {
        console.log('failed');
    }
}
const secondTest = value => {
    if (value !== null && value !== undefined) {
        console.log('passed');
    } else {
        console.log('failed');
    }
}

firstTest(0);            // result: failed
secondTest(0);           // result: passed

firstTest(false);        // result: failed
secondTest(false);       // result: passed

firstTest('');           // result: failed
secondTest('');          // result: passed

firstTest(null);         // result: failed
secondTest(null);        // result: failed

firstTest(undefined);    // result: failed
secondTest(undefined);   // result: failed

在我的情况下,我只需要检查值是否为null和未定义,我不想过滤0、false或“”值。所以我使用了第二个测试,但你可能也需要过滤它们,这可能会导致你使用第一个测试。

您可以检查某些值是否为空,如下所示

[pass,cpass,email,cemail,user].some(x=> x===null) 

let pass=1;设cpass=2;让电子邮件=3;let cemail=空;让用户=5;如果([pass,cpass,email,cemail,user].some(x=>x==null)){警报(“填充所有列”);//return false;}

奖金:为什么==比==更清楚(来源)

a==b

a===b

检查错误条件:

// Typical API response data
let data = {
  status: true,
  user: [],
  total: 0,
  activity: {sports: 1}
}

// A flag that checks whether all conditions were met or not
var passed = true;

// Boolean check
if (data['status'] === undefined || data['status'] == false){
  console.log("Undefined / no `status` data");
  passed = false;
}

// Array/dict check
if (data['user'] === undefined || !data['user'].length){
  console.log("Undefined / no `user` data");
  passed = false;
}

// Checking a key in a dictionary
if (data['activity'] === undefined || data['activity']['time'] === undefined){
   console.log("Undefined / no `time` data");
   passed = false;
}

// Other values check
if (data['total'] === undefined || !data['total']){
  console.log("Undefined / no `total` data");
  passed = false;
}

// Passed all tests?
if (passed){
  console.log("Passed all tests");
}

严格相等运算符:-

我们可以通过===

if ( value === null ){

}

仅通过使用if

if( value ) {

}

如果值不是:

无效的未定义NaN公司空字符串(“”)假的0