Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Math.random返回的数值与应用于变量的数值相同_Javascript - Fatal编程技术网

Javascript Math.random返回的数值与应用于变量的数值相同

Javascript Math.random返回的数值与应用于变量的数值相同,javascript,Javascript,Math.random在控制台中似乎工作正常。即使我对它应用Math.floor,也没有问题。但是,只要我将var分配给代码。我只是得到了相同的号码返回。 我所写的例子: 数学随机(); 您所做的是存储Math.floor(Math.random()*10)的值在x中。它没有调用Math.floor(Math.random()*10)每次使用x时。它是相同的值。要实现这一点,您需要有一个函数,以便可以调用Math.floor(Math.random()*10)每次 函数{ 返回Math.flo

Math.random
在控制台中似乎工作正常。即使我对它应用
Math.floor
,也没有问题。但是,只要我将
var
分配给代码。我只是得到了相同的号码返回。 我所写的例子:

数学随机();
您所做的是存储
Math.floor(Math.random()*10)的值
x
中。它没有调用
Math.floor(Math.random()*10)每次使用x时。它是相同的值。要实现这一点,您需要有一个函数,以便可以调用
Math.floor(Math.random()*10)每次

函数{
返回Math.floor(Math.random()*10)
}
console.log(randomFloor()<4)
console.log(randomFloor()<4)
console.log(randomFloor()<4)
console.log(randomFloor()<4)

log(randomFloor()<4)
通过给变量赋值,JavaScript解释器必须计算右边的表达式

因此JavaScript计算表达式
Math.floor(Math.random()*10)
的结果一次,并将其放入变量
x
。变量现在保存这个值。当您在控制台中键入
x
时,您总是在分配时获得此值。这就是变量的概念(重用值)

如果希望在
x
中使用不同的值,则需要分配一个新值(例如,再次调用
x=Math.floor(…)

如果需要可重复使用的逻辑封装,可以定义函数:

函数getMyRandomValue(){ 返回Math.floor(Math.random()*10); }
在控制台中,重复键入
getMyRandomValue()

您可以将结果分配给一个变量,例如
var y=getMyRandomValue()
,但是,变量
y
获取分配的函数调用返回的值,然后保存该值


附言:我建议你买一本好的编程入门书。你应该把这些基本知识弄对:-)

变量就是这样工作的。您基本上是在做
var x=5
,其中5是数学语句的结果,例如,您设置了x一次,然后再也没有设置过。所有编程语言都是这样工作的。如果你想每次都得到一个新的值,你需要使用一个函数而不是一个变量;这样,实际上会多次调用
Math.random()
。澄清一下,这就像告诉一个人选择一个数字,然后问他们多次选择了哪个数字。显然,他们每次都会告诉你相同的数字此行执行一次。将其放入一个循环中,并在循环中对其进行控制。你可以找到区别。