繁体   English   中英

JavaScript If / else 语句不返回 false 语句

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM