|
|

楼主 |
发表于 2023-7-8 08:20
|
显示全部楼层
本帖最后由 马黑黑 于 2023-7-8 08:54 编辑
生成随机16进制颜色值的方法不止一种,这里介绍相对简洁的做法,其实就一行代码解决问题:
let c = '#' + Math.random().toString(16).substring(2,8);
上句,变量 c 的值就是一个标准的十六进制颜色,运行效果请参照一楼里的演示。以下是对生成颜色的语句进行分析:
① 十六进制颜色首先需要 # 做前缀,# 是一个字符,所以用小角引号将其包裹起来;
② Math 是 JS 内置对象,头一个字母必须大写。Math.random() 生成一个小于1的浮点数,例如,0.09958032823855723 和 0.9637592126804668 等。Math.random() 可能会得到0,但概率极低;
③ toString() 是 JS 内置方法,将数字转换成字符,该方法加入参数值 16 ,即 toString(16),表示将步骤 ② Math.random() 生成的浮点数转换为十六进制,得到类似这样的结果,0.f6b8ec7bae6a9;
④ 将步骤 ③ 得到的结果截取6个十六进制数字,就可大功告成。截取方法很多,这里使用 JS 内置的处理字符串的 substring () 方法,该方法需要两个参数,参数一是字节索引,从 0 开始,0 是第一个字节的索引;参数二是截取的结束位置的字节索引,注意,它表示到此处但不包含此处,所以,本例中的第二个参数是8。
【提示】比 substring() 方法更简单的是 substr() 方法,substr(-6) 可以替代本例语句的 substring(2,8) ,它是从步骤 ③ 的结果中从后往前截取6个数字。
|
评分
-
| 参与人数 1 | 威望 +30 |
金钱 +60 |
经验 +30 |
收起
理由
|
南无月
| + 30 |
+ 60 |
+ 30 |
赞一个! |
查看全部评分
|