我们使用促销代码来允许用户访问页面。它不一定是安全的 - 只是试图给客户一个代码提示,让他们感到特别。
所以我使用了这段代码...显然我做错了什么,因为浏览器即使在他们输入代码后也会继续检查代码(最终页面崩溃(。我尝试休息;最后,但随后提示没有发生。
我将不胜感激对此的任何帮助。
我想做的只是摆脱这里的无休止循环。
var secret;
while (secret !== "1")
if (secret !== "2")
if (secret !== "3")
if (secret !== "4") {
secret = prompt("What is the secret password?");
};
问题是while
与if
混合使用不当。也许您应该考虑另一种方法:
var askSecret = function askSecret() {
var secret = prompt("What is the secret password?");
if(secret !== "theSecret") { askSecret(); }
};
askSecret();
编辑:多个密码/机密
在前面的示例中,唯一有效的密钥/密码是"theSecret"。如果需要拥有多个机密/密码,则必须使用 AND &&
运算符扩展条件:
var askSecret = function askSecret() {
var secret = prompt("What is the secret password?");
if(
secret !== "theSecret"
&& secret !== "TheOtherSecret"
&& secret !== "TheThirdValidSecret"
)
{
askSecret();
}
};
askSecret();
if (secret != XX)
行中键入任何数字,则代码将进入无限循环。这是因为满足while
条件,但if
条件失败,因此它会跳过prompt()
函数并重复while
。由于这不会改变answer
,它一遍又一遍地这样做。
如果要检查多个可能的答案,请在while
语句中全部执行:
var secret;
while (secret != "1" && secret != "2" && secret != "3" && secret != "4") {
secret = prompt("What is the secret password");
}