[英]How can I make my conditionals working in this JavaScript piece of code?
我正在編寫一些 JavaScript 代碼作為我創建密碼生成器應用程序的作業的一部分,我決定將我應該向用戶詢問的所有問題都放在 function 中。 生成密碼的標准之一是選擇 8 到 128 之間的字符數。我想確保用戶輸入正確的數字,否則 function 重新啟動並且不會讓用戶看到確認框的 rest直到他輸入所需的數字,所以我這樣寫:
function askQuestions() {
let numOfChracaters = +prompt("Choose the number of characters for your password (between 8 and 128)");
console.log(numOfChracaters);
if (numOfChracaters >= 8 || numOfChracaters <= 128) {
let hasUppercase = confirm("Do you want your password to include uppercase letters?");
let hasLowercase = confirm("Do you want your password to include lowercase letters?");
let hasNumber = confirm("Do you want your password to include numbers?");
let hasSpecialCharacters = confirm("Do you want your password to include special characters?");
let prefrencesArray = [numOfChracaters, hasUppercase, hasLowercase, hasNumber, hasSpecialCharacters];
return prefrencesArray;
} else {
askQuestions();
}
}
但由於某種原因,它不起作用,仍然允許用戶輸入他們想要的任何數字。 任何想法我在這里做錯了什么?
替換條件numOfChracaters >= 8 || numOfChracaters <= 128
至numOfChracaters >= 8 && numOfChracaters <= 128
你犯了一個有趣的錯誤。 每個數字要么 >= 8要么<= 128。
您正在尋找的是&&
運算符,因為雙方都需要同時為真。
您可以使用無限循環運行直到滿足要求
let numOfChracaters = 0;
while(numOfChracaters < 8) {
numOfChracaters = +prompt("Choose the number of characters for your password (between 8 and 128)");
}
if (numOfChracaters >= 8 && numOfChracaters <= 128)
因為對於您的 OR ( ||
) 運算符,條件 numOfChracaters <= 128 為 true,因此根據您的輸入(false || true)=> returns true. and (false && true)=> return false
(false || true)=> returns true. and (false && true)=> return false
解釋你的錯誤,以便下次你不會犯這樣的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.