You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript入门疑问:为何相同变量运行后会产生不同结果?

为什么相同变量却得到不同运行结果?

嘿,作为JavaScript初学者能注意到这个细节真的很棒!咱们来一步步拆解问题根源:

核心原因:Math.random()的随机性

你的代码里反复用到了Math.random()这个函数,它的特性就是每次被调用时,都会生成一个全新的、介于0(包含)到1(不包含)之间的随机小数。这就像你每次掷骰子都会得到不同的点数一样,每次运行代码时,这个函数都会输出不一样的值,进而影响依赖它的所有变量。

咱们顺着你的代码走一遍,就能看明白:

  1. 变量a的值是Math.floor(Math.random() * 10):每次运行时,Math.random()生成新的随机数,乘以10后取整,会得到0-9之间的随机整数,所以a每次都不一样。
  2. 变量b是10 - a:因为a每次变,b自然也跟着变。
  3. 变量c是Math.floor(Math.random() * b):这里又调用了一次Math.random(),生成新的随机数,再乘以变化的b取整,所以c的值也会跟着每次变化。
  4. 变量d是a + c:既然a和c都在变,d的结果肯定也不一样啦。

举个实际例子对比

比如第一次运行代码时:

  • Math.random()生成0.35,a = Math.floor(0.35*10) = 3
  • b = 10 - 3 =7
  • 第二次调用Math.random()生成0.2,c = Math.floor(0.2*7)=1
  • d=3+1=4

第二次运行代码时:

  • Math.random()生成0.82,a = Math.floor(0.82*10)=8
  • b=10-8=2
  • 第二次调用Math.random()生成0.7,c=Math.floor(0.7*2)=1
  • d=8+1=9

你看,虽然变量名都是a、c、d,但每次运行时它们存储的都是全新的随机值,所以输出结果自然不同啦!

内容的提问来源于stack exchange,提问作者Manomite

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:40:16