发表于: 2018-05-17 23:29:26
1 569
今天完成的事情:js的任务一、
明天的计划:写css任务14的轮播图;
今天的收获:
写获取随机数的时候,没有考虑到NodeList类数组对象并不是真正意义上的数组,随机数是取出来了,但是问题是取随机数的时候会产生重复的数字,导致的结果就是如果有相同的随机数出现,就只能选中一个元素,而想要的是三个元素,所以开始的思路是在取随机数的for循环内嵌套一个循环,用来遍历数组比较随机数和传入到随机数的数组是否有相同的,如果有相同的,继续循环取得随机数;
这个思路现在来看是错误的,1、没有必要创建一个新的数组来存放三个随机数,因为获取的节点引用本身就是一个数组!只要使用for循环的时候限制节点引用的个数就行了, 2、用来遍历比较的是threeArray[i]里传入的是随机的节点,所以比较的不是数字,如果用打印功能打印这个数组的话,可以发现显示的都是[Object HTMLDivElement],而不是预想的随机数;3、写流程的时候只写到了随机三个格子,再为这三个格子分配随机颜色(其实分配到三个随机坐标的同时赋予颜色就行了,没有必要分开写);
后面函数的点击开始、点击停止、重置没有考虑进流程;
任务一主要卡的地方是取随机数的问题、为执行函数创建点击事件;
需要注意的地方:
1、如果涉及到重复的代码,就必须考虑是否需要重置;最常用的重置手段就是把需要重置的初始值放在函数开头,这样函数再次执行的话就不是在上一次循环的基础上循环;
2、for循环不能放在全局作用域中,需要封装在函数中,否则执行不到这个循环;
3、各种方法按功能封装好,封装的时候考虑是否需要复用,如果不复用的话就放在入局部作用域中,如果需要复用就放在全局作用域!
4、封装函数时要考虑到功能使用、调用函数已经自身被调用的问题;
评论