JS|JS之获取随机颜色4种方法

1、实现方法:‘0123456789abcdef’[Math.floor(Math.random()*16)])随意截取字符串中的一个字符,然后判断字符串的长度是否为6,如果是,则返回color,如果不是,color : arguments.callee(color)返回正在执行的函数,即(color += ‘0123456789abcdef’[Math.floor(Math.random()*16)])并将color作为参数传进去;

var getRandomColor = function(){ return'#' + (function(color){ return (color +='0123456789abcdef'[Math.floor(Math.random()*16)]) && (color.length == 6) ?color : arguments.callee(color); })(''); }

2、把Math对象,用于生成颜色值的字符串提取出来,并利用第三个参数来判断是否还继续调用自身,当5减为0的时候,一共就有留个字符,再加上最后c=0时前面添加上‘#’。
var getRandomColor = function(){ return (function(m,s,c){ return (c ? arguments.callee(m,s,c-1) : '#') + s[m.floor(m.random() * 16)] })(Math,'0123456789abcdef',5) }

3、这个实现非常逆天,虽然有点小bug。我们知道十六进制表示的颜色值是从#000000到#ffffff,后面那六位数是16进制数,相当于"0x000000"到"0xffffff"。这实现的思路是将hex的最大值ffffff先转换为10进制,进行random后再转换回16进制。
var getRandomColor = function(){ return '#'+Math.floor(Math.random()*16777215).toString(16); } //将0xffffff转化为10进制 var result = parseInt("0xffffff",16).toString(10); console.log(result); //16777215

4、通过hsb生成随机颜色
var getRandomColor = function(){ return "hsb(" + Math.random()+ ", 1, 1)"; }

【JS|JS之获取随机颜色4种方法】参考文档:https://www.cnblogs.com/rubylouvre/archive/2009/09/24/1572977.html

    推荐阅读