[英]JavaScript If / else statement not return false statement
函数返回真,但是如果 / else 语句记录假结果。 知道我哪里出错了吗?
function loginDetails(arrayCheck, value) { for(i = 0; i < arrayCheck.length; i++){ if(arrayCheck[i] === value){ return true; } } return false; } var username = [1,2,3,4,5,6,7,8,9,10]; document.write('Login Details: ', loginDetails(username, 9), '</p>'); if(loginDetails === true) { document.write('Redirect ....Welcome !!</p>'); } else { document.write('There seems to be an error please try again !!'); }
loginDetails
是一个函数。 然后测试它是否是 boolean true
。 有趣的是,它永远不会!
我想您确实想运行该功能。 您需要缓存结果以免运行两次:
function loginDetails(arrayCheck, value) { for(i = 0; i < arrayCheck.length; i++){ if(arrayCheck[i] === value){ return true; } } return false; } var username = [1,2,3,4,5,6,7,8,9,10]; var loggedIn = loginDetails(username, 9); document.write('Login Details: ', loggedIn, '</p>'); if(loggedIn === true) { document.write('Redirect ....Welcome !!</p>'); } else { document.write('There seems to be an error please try again !!'); }
if(loginDetails === true)
是什么意思? 这不会将任何参数传递给loginDetails
函数。
而是尝试if(loginDetails(username, 9) === true)
。 希望这有效。
否则将loginDetails(username, 9)
存储在一个变量中并检查该变量是否为true
?
loginDetails
是一个函数,我想您想检查其结果是否与 true 相等。
function loginDetails(arrayCheck, value) { for(i = 0; i < arrayCheck.length; i++){ if(arrayCheck[i] === value){ return true; } } return false; } var username = [1,2,3,4,5,6,7,8,9,10]; var loginDetailsResult = loginDetails(username, 9); document.write('Login Details: ',loginDetailsResult, '</p>'); if(loginDetailsResult === true) { document.write('Redirect ....Welcome !!</p>'); } else { document.write('There seems to be an error please try again !!'); }
您正在检查对函数的引用是否等于 true,它将始终评估为 false。 函数和布尔值是不同的类型,因此比较严格相等将始终返回 false。 我已经更正了代码,以便调用函数,并比较函数的结果,而不是对函数的引用。
function loginDetails(arrayCheck, value) { for(i = 0; i < arrayCheck.length; i++){ if(arrayCheck[i] === value){ return true; } } return false; } var username = [1,2,3,4,5,6,7,8,9,10]; document.write('Login Details: ', loginDetails(username, 9), '</p>'); if(loginDetails(username, 9) === true) { document.write('Redirect ....Welcome !!</p>'); } else { document.write('There seems to be an error please try again !!'); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.