javascript - 使用 Javascript 更改正文的背景颜色?

标签 javascript

JS 新手。我正在尝试使用 Javascript 随机更改正文的背景颜色,但无法弄清楚为什么我的代码不起作用:

var colors = ["#e88f84", "#e8bb84", "#d2e884"];

function randomize() {
    var randomHex = colors[Math.floor(Math.random * colors.length)];
    document.body.style.backgroundColor = randomHex;
}

<body>
    <div id="text">
        <script>randomize()</script>
    </div>
</body>

最佳答案

Math.random 是一个方法,你需要调用它来获得一个随机数。由于 Math.random 返回函数引用,表达式 Math.random * colors.length 返回 NaN。并且 Math.floor(NaN) 也返回 NaN

var randomHex = colors[Math.floor(Math.random() * colors.length)];
                                             ^^

var colors = ["#e88f84", "#e8bb84", "#d2e884"];

function randomize() {
  var randomHex = colors[Math.floor(Math.random() * colors.length)];
  document.body.style.backgroundColor = randomHex;
}

randomize();
<body>
  <div id="text">
    Some text
  </div>
</body>

要改进代码,您可以使用 IIFE,它会自动调用并将变量保留在本地。

(function() {
    'use strict';

    var colors = ["#e88f84", "#e8bb84", "#d2e884"];

    var randomHex = colors[Math.floor(Math.random() * colors.length)];
    document.body.style.backgroundColor = randomHex;
}());

(function() {
  'use strict';
  var colors = ["#e88f84", "#e8bb84", "#d2e884"]
  var randomHex = colors[Math.floor(Math.random() * colors.length)];
  document.body.style.backgroundColor = randomHex;
}());

关于javascript - 使用 Javascript 更改正文的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41372783/

相关文章:

javascript - 使用三个js和NSF OpenTopography数据的点云: How do you set up the camera and a controls library to navigate the data?

javascript - 如何通过事件更改弹出窗口的延迟?

javascript - 如何在 iframe 上运行 javascript 代码?

javascript - 使用 TypeScript 函数返回 JSON 对象

javascript - Aurelia:单例 View 中的静态自定义元素

javascript - jQuery 除法但保留小数

javascript - AngularJS 指令,在元素后插入 HTML

javascript - 无法理解为什么使用展开运算符

javascript - 上传前如何操作内存中的文件流

javascript - Excel - json数据 - 将某些元素返回到相邻单元格公式/宏