2015-10-07 13 views
1
var password = prompt('Please enter your password.'); 
if (password!=="cat" && password!=="cow") { 
console.log(password); 
location.assign("http://www.google.com") 
} 


//The rest of prompts 
var age = prompt("What is your age?"); 
var name = prompt('What is your name?'); 
var homeTown = prompt('Where are you from?'); 
var favoritDog = prompt("What's your favorite dog?"); 

所以這是我的代碼(我是一個初學者,只是搞亂了概念),如果輸入了不正確的密碼,不應該這樣做立即將我重定向到谷歌?因爲當我運行該代碼時,它會在重定向之前首先提供所有提示。任何幫助表示讚賞,謝謝。爲什麼不這樣if/else在其他提示之前運行

回答

2

因爲做location.assign不會停止執行JavaScript,它會繼續。它將在順序JavaScript完成後執行位置分配。由於prompt會阻止當前執行,因此完成後需要經過提示。爲了防止它簡單地將您的提示添加到else

var password = prompt('Please enter your password.'); 
if (password!=="cat" && password!=="cow") { 
    console.log(password); 
    location.assign("http://www.google.com") 
} else { 
    //The rest of prompts 
    var age = prompt("What is your age?"); 
    var name = prompt('What is your name?'); 
    var homeTown = prompt('Where are you from?'); 
    var favoritDog = prompt("What's your favorite dog?"); 
} 
+0

那麼,提示有優先於某些東西在JavaScript? –

+0

它阻止執行,但除此之外它不是優先事項。這只是'location.assign'直到JavaScript被排序並執行完畢纔會發生。你可以想像它將它添加到隊列中,然後在完成所有事情之後運行它。例如,你可以用'console.log()'替換'prompt',你仍然會看到控制檯顯示這些項目。 –

+0

爲什麼if語句不能執行,因爲它被滿足了?爲什麼提示必須在if/elses之前運行?我想我只是不理解爲什麼提示符有資格先走 –

相關問題