发表于: 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中写注释十分方便自己阅读也方便修改。



返回列表 返回列表
评论

    分享到