这是不好的if / else编程练习?

时间:2015-09-12 09:54:06

标签: javascript loops if-statement

我在函数中有这个if / else循环,我只是想知道这是否是一个可接受的'做事的方式。它做我想做的事情,但我认为必须有一个更优雅的解决方案。

var signUpCheckAll = function(username, password, passwordconf, email){
    if (emptyChecker(username, password)) {
        if (emptyChecker(passwordconf, email)) {
            if (lengthChecker(password)) {
                if (passwordCheck(password, passwordconf)) {
                    return true;
                }
                else{
                    console.log("Passwords don't match!");
                }
            }
            else{
                console.log("Password isn't long enough!");
            }
        }
        else{
            console.log("Some fields are empty!");
        }
    }
}

由于

1 个答案:

答案 0 :(得分:3)

我个人(也可能是其他许多人)认为这更具可读性:

if (!emptyChecker(username, password)) {  
    console.log("Some fields are empty!");
}
else if (!emptyChecker(passwordconf, email)) {
   //Where’s the message?
}
else if (!lengthChecker(password)) {
    console.log("Password isn't long enough!");
}
else if (!passwordCheck(password, passwordconf)) {
    console.log("Passwords don't match!");
}
else {
    return true;
}

我还建议您重命名您的功能。目前尚不清楚函数名passwordCheck的作用。函数名称应始终包含表示函数的操作或返回的动词。 passwordsMatch更好。 (然后,您可以将该行读作“如果(不是)密码(不)匹配”。)