簡體   English   中英

如何使我的條件在此 JavaScript 代碼段中工作?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM