[英]JavaScript function returning “undefined”
我編寫了一個簡單的代碼,使用“ random_word();”從四個隨機名稱中選擇一個。 功能,它不起作用。 它說:“未定義”。 誰能解釋我的原因並幫助解決它? 感謝所有幫助。
var randomWord;
var word = new Array(3);
word[0] = "Michael";
word[1] = "Simon";
word[2] = "Peter";
word[3] = "Mark";
function random_word(){
var randomWord = word[Math.floor(Math.random()*word.length)]
}
random_word();
document.write(randomWord);
您可以使用var
語句使randomWord
成為函數的私有變量。 如果沒有,則可以將全局變量用於結果。
function random_word() { randomWord = word[Math.floor(Math.random() * word.length)]; } var randomWord; word = ["Michael", "Simon", "Peter", "Mark"]; random_word(); document.write(randomWord);
更好的樣式和更簡潔的將是所選項目的返回。 如果您也將數組用作參數,則是一個更好的版本,因為您也可以將函數用於其他數組。
function getRandomItem(array) { return array[Math.floor(Math.random() * array.length)]; } var words = ["Michael", "Simon", "Peter", "Mark"]; document.write(getRandomItem(words));
獎勵,添加帶有間隔的隨機名稱。
function getRandomItem(array) { return array[Math.floor(Math.random() * array.length)]; } var words = ["Michael", "Simon", "Peter", "Mark"]; setInterval(function () { document.getElementById('names').innerHTML += getRandomItem(words) + '<br>'; }, 2000);
<div id="names"></div>
random_word
函數上下文中的局部變量randomWord
與在外部上下文中聲明的randomWord
無關。 如果要重置外部上下文randomWord
變量的值,則應在函數中刪除var
關鍵字。
function random_word(){
randomWord = word[Math.floor(Math.random()*word.length)]
}
但這不是編程的好方法。 理想情況下,該函數應返回一個值。
function random_word(){
return word[Math.floor(Math.random()*word.length)];
}
var randomWord = random_word();
var anotherRandomWord = random_word();
您在函數中使用var關鍵字,該關鍵字創建了一個局部變量。 當您退出該功能時,將不會設置全局功能。
使用此代替:
function random_word(){
randomWord = word[Math.floor(Math.random()*word.length)]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.