我一直在研究如何使用JavaScript制作一个简单的硬币翻转脚本,而且我已经看过那些使用20个不同元素或者你称之为的东西看起来过于复杂的人的视频。我打算做的是创建一个“魔术8球”类型的脚本,但只使用简单的命令。我有它工作,所以我有一个文本框,然后旁边是一个按钮,按下它将执行一个功能。
Math.floor(Math.random() * 4)
时返回数字,而是要返回“是”,“否”,“可能”等字样。此外,我想知道()
在Math.random()
中做了什么。
function checkFunction() {
if (question.value == '') {
document.getElementById("fortune").innerHTML = "Please Enter A Question";
} else {
Math.floor(Math.random(data) * 4);
if (data == 0) {
document.getElementById("fortune").innerHTML = "Maybe";
} else if (data == 1) {
document.getElementById("fortune").innerHTML = "Try Again";
} else if (data == 2) {
document.getElementById("fortune").innerHTML = "Yes";
} else if (data == 3) {
document.getElementById("fortune").innerHTML = "No";
} else {
return "Invalid";
}
}
}
我不在乎它是否很长,我只是想让它变得简单。我不想定义一堆变量并乱用它们,因为我只是想一步一步。在继续学习新事物之前,我基本上试图弄清楚if语句的最大潜力。
答案 0 :(得分:3)
我想知道()在Math.random()中做了什么。
Math.random()
是一个函数,它不需要参数。 ()
表示它是一个功能。您正在将data
传递给函数,但函数将不会使用它,因为它是无参数的。
答案 1 :(得分:2)
如果您不想获得该回报:
function checkFunction() {
var arr = ['Maybe','Try Again','Yes','No'],
index = Math.floor(Math.random() * 5); //0 to 4
document.getElementById('fortune').innerHTML = (question.value=='')? 'Please Enter A Question' : (index<arr.length)? arr[index] : 'Invalid';
}
如果你想让回报使用这个:
function checkFunction() {
var arr = ['Maybe','Try Again','Yes','No'],
index = Math.floor(Math.random() * 5); //0 to 4
var tmp = (question.value=='')? 'Please Enter A Question' : (index<arr.length)? arr[index] : false;
if (tmp===false){
return 'Invalid';
}else{
document.getElementById('fortune').innerHTML = tmp;
}
}
答案 2 :(得分:0)
Math.floor(Math.random(data) * 4);
忽略参数data
,因为Math.random
没有参数。表达式语句的计算结果为范围[0,4]中的整数值。执行后data
仍未定义(或以前的任何内容)。
您可以使用整数随机数生成器函数,例如:
function randomInt( low, high) {
var range = high - low + 1;
return low + Math.floor( range * Math.random());
}
在调用时返回包含范围[low,high]中的整数。