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