2014-01-15 30 views
-3

我正在創建一個JavaScript猜測遊戲。我已經設置了功能。我一直在收到一個錯誤。JavaScript錯誤:未捕獲ReferenceError:userNumber未在第43行定義

JavaScript error: Uncaught ReferenceError: userNumber is not defined on line 43.

我通過這個在線解釋器運行我的代碼:它具有我正在運行的所有代碼。 http://js.do/seacode/30269

我將userNumber傳遞給函數guessingNumber(),但它沒有將變量傳遞給它。

代碼:

<script> 
// Ask user to enter guess 
function playGame() { 
    var play = prompt("Would you like to play? (Type: (y) or (n))"); 
    if (play === 'y') { 
     var userNumber = prompt("Enter your guess (1 - 100)"); 
    } else if (play === 'n') { 
     prompt("Come Again!"); 
    } else { 
     prompt("Enter a valid choice "); 
    } 
} 

// Generate the random number 
function createRandNum(play) { 
    if (play === 'y') { 
     var randomNumber = Math.floor((Math.random() * 100) + 1); 
    }; 
} 

// Evaluate whether the number is correct 
function guessingNumber(userNumber) { 
    if (userNumber !== randomNumber) { 
     if (userNumber < randomNumber) { 
      console.log("Number too low."); 
     } else if (userNumber > randomNumber) { 
      console.log("Number too high."); 
     } 
    } 
    if (userNumber === randomNumber) { 
     console.log("It's a match."); 
    } 
} 

// Display results 
function displayResults(userNumber, randomNumber) { 
    console.log("The number you chose was " + userNumber); 
    console.log("The number the computer generated was " + randomNumber); 
} 

playGame(); 
createRandNum(playGame); 
guessingNumber(userNumber); 
displayResults(userNumber, randomNumber); 

</script> 
+0

'userNumber'未定義...提供相關代碼而不是外部網站 –

+2

如果您不熟悉詞法範圍,請查找「JavaScript變量範圍」。 –

+0

具體來說這裏沒有定義; guessingNumber(userNumber); –

回答

0

您已經定義了玩笑函數內部的userNumber變量。它在該功能之外是不可見的。如果您將此行放在腳本的開頭:

var userNumber;

並從顯示提示的行中刪除var關鍵字,我想你會全部設置。

+0

他不會全部設置。他有'randomNumber'類似的問題。 – Barmar

+0

謝謝,我也不得不在全球範圍內定義randomNumber,但我沒有輸出。 –

+0

您正在使用的工具不會從console.log生成輸出。您必須改用document.write。快樂的編碼。 –

0

我認爲,userNumber變量只存在於本地函數playGame()中,您必須在全局範圍內聲明該變量。

<script> 

// Ask user to enter guess 
//Declare the global variable to use in others function 
var userNumber; 
function playGame() { 
    var play = prompt("Would you like to play? (Type: (y) or (n))"); 
    if (play === 'y') { 
     //Getting the value, this value will be defined 
     userNumber = prompt("Enter your guess (1 - 100)"); 
    } else if (play === 'n') { 
     prompt("Come Again!"); 
    } else { 
     prompt("Enter a valid choice "); 
    } 
} 

................ 

</script> 

我希望這個答案能幫助你... !!

相關問題