2016-09-28 138 views
2

(我對JavaScript非常陌生,並且正在寫這篇文章以嘗試習慣使用它,這就是爲什麼我使用對象來存儲用戶名和密碼的原因。這是學習的一部分,但這是在我自己的時間進一步我的知識JS) 我已經嘗試寫一小段代碼,應該要求用戶輸入一個用戶名,這將被交叉檢查對象「userNames」中的屬性名稱。然後要求用戶輸入該用戶的密碼,然後使用正確的用戶名將該密碼與設置爲相應屬性值的密碼進行覈對。 我感覺好像問題的一部分是與我一起嘗試使用「userNames」變量「enteredPassword」(設置爲用戶輸入密碼作爲方法)。 如果3次嘗試後用戶名或密碼不正確,我希望窗口關閉。 我的文本編輯器說If語句缺少一個分支,我不確定這是否影響這是否有效。如果/ Else語句嵌套在While循環中

var userNames = {Tom:"PassW0rd", Bill:"Apples40C0lander", Ryan:"M1911p4ck4ge"}; 
 
var Greeting = "Insert Username:"; 
 

 
var i = 0; 
 
while (i < 3) 
 
{ 
 
    var enteredUserName = prompt(Greeting); 
 
    var enteredPassword = prompt("enter password for " + enteredUserName); 
 

 
    if ((userNames.hasOwnProperty(enteredUserName)) && (userNames.enteredUserName==enteredPassword)) { 
 
     alert("Welcome"); 
 
     break; 
 
    } else { 
 
     alert("incorrect Username or Password"); 
 
     alert(""); 
 
     window.open('', '_self', ''); window.close(); 
 
     window.open('', '_self', ''); window.close(); 
 
     i++ 
 
    }}

+1

了'if'語句 – 2016-09-28 13:50:39

+0

你是不是增加i後刪除分號,所以我<3始終是真實的,你是科瑞成爲一個無限循環 – StackOverMySoul

+0

由於'if-statement'之後的'分號',代碼不會編譯。分號關閉整個'if',所以'else'不再屬於它 - >語法錯誤。它只被解釋爲只有一個命令的'if'的'短'。語法是這樣的:'if(expression)command;'。你看,如果你只使用一個命令,不需要''''''''。一個沒有任何別的東西被解釋爲一個空命令,所以if(expression); '完成'if'。 – Zabuza

回答

0

一個簡單的變化是在這裏就夠了: userNames[enteredUserName]
JavaScript,Object也可以訪問像array
如果使用userNames.enteredUserName,那麼它會檢查{enteredUserName:somevalue}(即enteredUserName將被視爲一個String。但如果你把它作爲userNames[enteredUserName],然後enteredUserName將被視爲變量和指標到Object
嘗試以下片段。

var userNames = {Tom:"PassW0rd", Bill:"Apples40C0lander", Ryan:"M1911p4ck4ge"}; 
 
var Greeting = "Insert Username:"; 
 

 
var i = 0; 
 
while (i < 3) 
 
{ 
 
    var enteredUserName = prompt(Greeting); 
 
    var enteredPassword = prompt("enter password for " + enteredUserName); 
 

 
    if ((userNames.hasOwnProperty(enteredUserName)) && (userNames[enteredUserName]==enteredPassword)) { 
 
     alert("Welcome"); 
 
     break; 
 
    } else { 
 
     alert("incorrect Username or Password"); 
 
     alert(""); 
 
     window.open('', '_self', ''); window.close(); 
 
     window.open('', '_self', ''); window.close(); 
 
     i++ 
 
    }}