发表于: 2017-04-15 21:00:08
1 1319
今天完成的事情:
1、完成了任务1。
2、了解了断点调试功能,暂时还只看了一些简单的操作,还有很多的内容可以学习。
2、在之前的问题中,在点击函数中首先执行一次清除计时器效果。这样防止多次点击造成的多个函数一直在循环的问题。
3、开始的时候采用sort()方法来使一个包含0-8数字的数组乱序,取前三个值作为选取九宫格的序号,后来发现sort()方法有缺陷,它不能保证结果概率的平均分配,导致前三个格子变色的几率远比后三个格子变色的几率高。于是采用以下方法来取随机数。
function threediv() {
var y = [];
for (var a = 1;a<=3;a++) {
var x = Math.floor(Math.random()*9);
y.push(x);
}
return y;
}但这种方法有一个缺陷就是可能取到相同的随机数,导致可能只有两个或一个格子变色,所以在后面的改变格子颜色函数中插入这样一条循环语句,当有相等的两个数时,再次执行取随机数函数,直到没有相等的随机数,然后将z[0]、z[1]、z[2]代表随机的三个格子在数组中的序号,再将随机的颜色赋予给三个格子。
do {
var z=threediv();
}
while (z[0]===z[1]||z[0]===z[2]||z[1]===z[2]);//判断是否有重复的数,有的话再次执行函数
明天计划的事情:
1、开始任务2的学习。
2、继续学习《JavaScript高级程序设计》。
3、了解js中页面跳转和传参相关知识。
遇到的问题:
1、暂无。
收获:
1、学会了几种取几岁颜色的方法。具体可参见下面网站,因为js部分了解的部分还不够多,其中有几种方法还不理解其原理。
http://www.cnblogs.com/rubylouvre/archive/2009/09/24/1572977.html
在本任务中主要采取了以下函数,这种方法有一个缺陷,有时候可能只有五位数,所以需要加一个判断,当小于6位数时再加一个数字。
function randomColor() { //随机生成十六进制颜色
var hex = Math.floor(Math.random() * 16777216).toString(16); //生成ffffff以内16进制数
while (hex.length < 6) { //while循环判断hex位数,少于6位前面加0凑够6位
hex = '0' + hex;
}
return '#' + hex; //返回‘#'开头16进制颜色
}2、console.log()真的很好用 ,可以在F12的控制台显示出你想要的数据,方便进行调试。
3、在js中写注释十分方便自己阅读也方便修改。
评论