JS获取随机颜色(两种方法)

一、代码注释详解

方法一

  • 使用for循环6次,模拟生成6位16进制颜色码
  • Math.random() * 16 生成一个0到15之间的随机浮点数,然后使用按位或操作符(|)与0进行运算,将其转换为整数
  • toString(16)将这个整数转换成16进制字符串
scss 复制代码
function getColor() {
  var color = "#";
  // 使用for循环6次,模拟生成6位16进制颜色码
  for (var i = 0; i < 6; i++) {
    // Math.random() * 16 生成一个0到15之间的随机浮点数,
    // 然后使用按位或操作符(|)与0进行运算,将其转换为整数
    // 这样可以确保结果是0到15之间的整数
    // toString(16)将这个整数转换成16进制字符串
    // 将生成的随机16进制字符追加到color字符串中
    color += ((Math.random() * 16) | 0).toString(16);
  }
  return color;
}
console.log(getColor(),'color');

方法二

  • 使用Math.random()生成一个0到1之间的随机浮点数,乘以0xffffff(即16777215)得到一个0到16777215之间的随机整数
  • 调用Math.floor方法对这个随机数向下取整
  • toString(16)将其转换为16进制字符串
  • padEnd(6, "0")在字符串结尾补充足够的"0",使得最终字符串长度为6位
javascript 复制代码
// 使用Math.random()生成一个0到1之间的随机浮点数
// 乘以0xffffff(即16777215)得到一个0到16777215之间的随机整数
// 然后调用Math.floor方法对这个随机数向下取整
// 接着用toString(16)将其转换为16进制字符串
// 最后使用padEnd(6, "0")在字符串结尾补充足够的"0",使得最终字符串长度为6位
let randomColor="#" + Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, "0")
console.log(randomColor,'color');
相关推荐
一个处女座的程序猿O(∩_∩)O1 小时前
小型 Vue 项目,该不该用 Pinia 、Vuex呢?
前端·javascript·vue.js
hackeroink5 小时前
【2024版】最新推荐好用的XSS漏洞扫描利用工具_xss扫描工具
前端·xss
迷雾漫步者6 小时前
Flutter组件————FloatingActionButton
前端·flutter·dart
向前看-7 小时前
验证码机制
前端·后端
燃先生._.8 小时前
Day-03 Vue(生命周期、生命周期钩子八个函数、工程化开发和脚手架、组件化开发、根组件、局部注册和全局注册的步骤)
前端·javascript·vue.js
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭8 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
高山我梦口香糖9 小时前
[react]searchParams转普通对象
开发语言·前端·javascript
m0_748235249 小时前
前端实现获取后端返回的文件流并下载
前端·状态模式
m0_748240259 小时前
前端如何检测用户登录状态是否过期
前端