2012-11-20 22 views
0

目前我正在學習函數,而且我無法真正發現下面的代碼有什麼問題。 無論什麼價值「密碼」需要我總是得到「NICE」我的代碼有什麼問題?

var passValid = function (password) { 
    return password.length; 
}; 

if (passValid<5){ 
    console.log("ERROR"); 
} 
else{ 
    console.log("NICE"); 
} 

passValid("somevalue"); 

回答

5

我想你想:

if (passValid("password") < 5) { 
    console.log("ERROR"); 
} 
else { 
    console.log("NICE"); 
} 

我不知道怎麼形容,爲什麼你原來的代碼是錯誤的;它只是在雜草中排序:-)

1

您不要調用該函數,而是嘗試將函數本身與數字進行比較,而不是使用該函數返回的值。

在你的情況下,passValid只是對函數的引用。對於要返回一個值,你必須發出一個電話給它通過使用passValid("someValueInHere");

試試這個:

var passValid = function (password) { 
    return password.length; 
}; 

if (passValid("somevalue") < 5){ 
    console.log("ERROR"); 
} else { 
    console.log("NICE"); 
} 
2

你缺少的參數在函數調用

if (passValid<5)//no argument 
if (passValid("passowrd")<5)//pass an argument 
passValid("somevalue");//no need for this 

var passValid = function (password) { 
    //return password.length;remove this from here 
//}; remove this from here 

if (password.length<5){ 
    console.log("ERROR"); 
} 
else{ 
    console.log("NICE"); 
} 
}; //add here so now entire is function 
passValid("somevalue");